黑马程序员技术交流社区
标题:
GUI-保存对话框问题
[打印本页]
作者:
阿牛
时间:
2012-3-25 13:42
标题:
GUI-保存对话框问题
问题:运行时,即使是修改已经存在的文件,点保存也会弹保存对话框,可我已经设置了if(file==null )时才弹的,可为什么只要点保存就弹,我觉得问题在我用颜色标出的部分,可我看不出啥问题来,大伙帮我看看。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class menuDemo
{
private Frame f;
private Menu m,m1;
private MenuItem mi,java,open,save;
private MenuBar mb;
private FileDialog fdopen,fdsave;
private TextArea ta;
private File file;
menuDemo()
{
exec();
}
void exec()
{
f=new Frame();
f.setBounds(200,300,400,400);
//f.setLayout(new FlowLayout());
mb=new MenuBar();
m=new Menu("file");
m1=new Menu("new");
java=new MenuItem("java");
mi=new MenuItem("exit");
open=new MenuItem("open");
save=new MenuItem("save");
fdopen=new FileDialog(f,"open",FileDialog.LOAD);
fdsave=new FileDialog(f,"save",FileDialog.SAVE);
ta=new TextArea();
f.setMenuBar(mb);
f.add(ta);
mb.add(m);
m.add(m1);
m.add(open);
m.add(save);
m1.add(java);
m.add(mi);
myEvent();
f.setVisible(true);
}
void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
});
mi.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
});
open.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
fdopen.setVisible(true);
String dirPath=fdopen.getDirectory();
String fileName=fdopen.getFile();
ta.setText("");
//System.out.println(dirPath+".."+fileName);
File file=new File(dirPath,fileName);
try
{
BufferedReader bf=new BufferedReader(new FileReader(file));
String line=null;
while((line=bf.readLine())!=null)
ta.append(line+"\r\n");
bf.close();
}
catch (IOException ioe)
{
throw new RuntimeException("failure");
}
}
});
save.addActionListener(new ActionListener ()
{
public void actionPerformed (ActionEvent e)
{
if(file==null)
{
fdsave.setVisible(true);
String dirPath=fdsave.getDirectory();
String fileName=fdsave.getFile();
if(fileName==null||dirPath==null)
return;
file=new File(dirPath,fileName);
}
try
{
BufferedWriter bw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bw.write(text);
bw.flush();
bw.close();
}
catch (IOException ioe)
{
throw new RuntimeException("failure");
}
}
});
}
}
class myMenuDemo
{
public static void main(String[] args)
{
new menuDemo();
}
}
作者:
刘蕴学
时间:
2012-3-25 14:11
经测试,一切正常
作者:
阿牛
时间:
2012-3-25 18:29
了无尘 发表于 2012-3-25 14:11
经测试,一切正常
打开已经存在的文件,修改,再保存的话,还是会弹出保存对话框的,但,应该是不弹出的才对,只有新文档保存时才弹出。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2