gui问题

QQ_fuck 2018-05-24 06:34:19
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.*;
public class MyMenuDemo {
private Frame f;
private MenuBar mb;
private Menu m;
private TextArea ta;
private MenuItem da,tuic,baocun;
private FileDialog opu,sa;
private File file;
MyMenuDemo(){
init();
}
public void init(){
f=new Frame("窗口");
f.setBounds(300, 100, 600, 500);
mb=new MenuBar();

ta=new TextArea();
m=new Menu("文件");
da=new MenuItem("打开文件");
baocun=new MenuItem("保存文件");
tuic=new MenuItem("退出");
m.add(da);
m.add(baocun);
m.add(tuic);
mb.add(m);
f.setMenuBar(mb);

opu=new FileDialog(f,"我要打开",FileDialog.LOAD);
sa=new FileDialog(f,"我要保存",FileDialog.SAVE);
f.add(ta);
myEvent();
f.setVisible(true);
}
private void myEvent(){
baocun.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(file==null){ //这个地方的if判断为什么还是会为真
sa.setVisible(true);
String mu=sa.getDirectory();
String j=sa.getFile();
if(mu==null||j==null)
return;
file=new File(mu,j);
}
try{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bufw.write(text);
bufw.close();
}catch (IOException dd){
throw new RuntimeException("写入失败");
}
}
});
da.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
opu.setVisible(true);
String mu=opu.getDirectory();
String j=opu.getFile();
if(mu==null||j==null)
return;
ta.setText("");
file=new File(mu,j); //我先操作打开文件 file对象已经不为空了,为什么上面的if判断还是为真,
try{
BufferedReader bufr=new BufferedReader(new FileReader(file));
for(String line=null;(line=bufr.readLine())!=null;){
ta.append(line+"\r\n");
}
bufr.close();
}catch (IOException dd){
throw new RuntimeException("读取失败");
}
}
});
baocun.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
sa.setVisible(true);
}
});
tuic.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

}
public static void main(String[] args){
new MyMenuDemo();
}
}
...全文
920 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧