已有101人关注
程序编写正确,打印出来有问题
发表在Java图书答疑 2016-04-07
是否精华
版块置顶:
package file;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.Border;

public class Ftest extends JFrame {//创建类继承JFrame
private static final long serialVersionUID=1L;
private JPanel jContentPanel=null;//创建面板对象
private JTextArea jTextArea=null;//创建文本域对象
private JPanel controlPanel=null;//创建面板对象
private JButton openButton=null;//创建按钮对象
private JButton closeButton=null;//创建按钮对象

private JTextArea getJTextArea(){
if(jTextArea==null){
jTextArea=new JTextArea();
}
return jTextArea;
}
private JPanel getControlPanel(){
if(controlPanel==null){
FlowLayout flowLayout=new FlowLayout();
flowLayout.setVgap(1);
controlPanel=new JPanel();
controlPanel.setLayout(flowLayout);
controlPanel.add(getOpenButton(),null);
controlPanel.add(getCloseButton(),null);
}
return controlPanel;
}
private JButton getOpenButton(){
if(openButton==null){
openButton=new JButton();
openButton.setText("写入文件");//修改按钮的提示信息
openButton.addActionListener(new ActionListener() {
//按钮单击事件
public void actionPerformed(ActionEvent e) {
    File file=new File("word.txt");
    try{
     //创建FileWriter对象
     FileWriter out=new FileWriter(file);
     String s=jTextArea.getText();
     out.write(s);
     out.close();
    }catch(Exception e1){
     e1.printStackTrace();
    
    }

}
});
}
return openButton;

}

private JButton getCloseButton(){
if(closeButton==null){
closeButton=new JButton();
closeButton.setText("读取文件");
closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
File file =new File("word.txt");
try{
FileReader in =new FileReader(file);
char byt[]=new char[1024];
int len =in.read(byt);
jTextArea.setText(new String(byt,0,len));
in.close();
}catch(Exception e1){
e1.printStackTrace();
}
}
});
}
return closeButton;
}
    public Ftest(){
     super();
     initialize();
    }
    public void initialize(){
     this.setSize(300,200);
     this.setContentPane(getContentPane());
     this.setTitle("JFrame");
    }
    private JPanel getJContentPane(){
     if(jContentPanel==null){
     jContentPanel=new JPanel();
     jContentPanel.setLayout(new BorderLayout());
     jContentPanel.add(getJTextArea(),BorderLayout.CENTER);
     jContentPanel.add(getControlPanel(), BorderLayout.SOUTH);
     }
     return jContentPanel;
    }
    public static void main(String[] args) {
Ftest thisClass=new Ftest();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);

}

}
这个程序运行之后只有一个JFrame框架,里面的文本区域和按钮都没有,为什么?谢谢
分享到:
精彩评论 1
静心_mrkj
学分:0 LV1
2016-04-12
沙发
根据Debug不难看出,程序开始运行时,程序在创建Ftest只执行了initialize()这个方法。其余部分并未执行。尝试着将所有窗体中的组件都写在Ftest类的构造方法里(不需要用到返回值,找个书中的例子感受一下)。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照