用awt中的文件对话框保存文件不能运行,代码如下:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class myframe
{
public static void main(String[] args)
{
final Frame f = new Frame("窗口");
f.setSize(600,400);
f.setLocation(100,100);
f.setBackground(Color.black);
final TextField tf = new TextField(20);
//f.add(tf,"Center");
final TextArea ta = new TextArea();
f.add(ta);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
MenuBar mb = new MenuBar();
Menu m1 = new Menu("文件");
Menu m2 = new Menu("编辑");
MenuItem mi1 = new MenuItem("新建");
MenuItem mi2 = new MenuItem("打开");
MenuItem mi3 = new MenuItem("关闭");
MenuItem mi4 = new MenuItem("保存");
mi4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd = new FileDialog(f,"Save",FileDialog.SAVE);
File file1 = new File(fd.getDirectory(),fd.getFile());
if (file1==null)
fd.setFile("Edit1.txt");
else
fd.setFile(file1.getName());
fd.setVisible(true); //创建并显示保存文件对话框
if ((fd.getDirectory()!=null) && (fd.getFile()!=null))
{
tf.setText(fd.getDirectory()+fd.getFile());
save(file1);
}
}
public void save(File file1)
{
try //将文本区内容写入字符输出流
{
FileWriter fw = new FileWriter(file1);
fw.write(ta.getText());
fw.close();
}
catch (IOException ioe)
{
System.out.println(ioe);
}
}
});
MenuItem mi5 = new MenuItem("另存为");
MenuItem mi6 = new MenuItem("退出");
mi6.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
MenuItem mi7 = new MenuItem("复制");
MenuItem mi8 = new MenuItem("粘贴");
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
m1.add(mi5);
m1.add(mi6);
m2.add(mi7);
m2.add(mi8);
mb.add(m1);
mb.add(m2);
f.setMenuBar(mb);
f.show();
}
}
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class myframe
{
public static void main(String[] args)
{
final Frame f = new Frame("窗口");
f.setSize(600,400);
f.setLocation(100,100);
f.setBackground(Color.black);
final TextField tf = new TextField(20);
//f.add(tf,"Center");
final TextArea ta = new TextArea();
f.add(ta);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
MenuBar mb = new MenuBar();
Menu m1 = new Menu("文件");
Menu m2 = new Menu("编辑");
MenuItem mi1 = new MenuItem("新建");
MenuItem mi2 = new MenuItem("打开");
MenuItem mi3 = new MenuItem("关闭");
MenuItem mi4 = new MenuItem("保存");
mi4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd = new FileDialog(f,"Save",FileDialog.SAVE);
File file1 = new File(fd.getDirectory(),fd.getFile());
if (file1==null)
fd.setFile("Edit1.txt");
else
fd.setFile(file1.getName());
fd.setVisible(true); //创建并显示保存文件对话框
if ((fd.getDirectory()!=null) && (fd.getFile()!=null))
{
tf.setText(fd.getDirectory()+fd.getFile());
save(file1);
}
}
public void save(File file1)
{
try //将文本区内容写入字符输出流
{
FileWriter fw = new FileWriter(file1);
fw.write(ta.getText());
fw.close();
}
catch (IOException ioe)
{
System.out.println(ioe);
}
}
});
MenuItem mi5 = new MenuItem("另存为");
MenuItem mi6 = new MenuItem("退出");
mi6.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
MenuItem mi7 = new MenuItem("复制");
MenuItem mi8 = new MenuItem("粘贴");
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
m1.add(mi5);
m1.add(mi6);
m2.add(mi7);
m2.add(mi8);
mb.add(m1);
mb.add(m2);
f.setMenuBar(mb);
f.show();
}
}
解决方案 »
- j2ee项目打包问题
- 指定长度的字符串截取,返回一个字符串数组
- 散分,一个痛苦的人
- 新手求救,JAVA的安装软件在哪下呀
- 高分求<手写Java:高手养成之路>一书
- 如何对数据库的内容进行国际化
- 为什么我制作的状态栏加入到JFrame后(布局管理器为BorderLayout)要么看不见要么变得很胖?
- 内隐类的例子分析,不知道对不对,谢谢指导.
- 各位老大帮帮忙,程序中如何设置component的焦点?
- 新人求解Java面向对象,Java牛的速进!
- 命令行上执行可以正确出文件。java执行却不行?大家帮手找找原因
- 测试BufferedInputStream的mark()和reset()方法,提交文件时会出现Resetting to invalid mark
出现在File file1 = new File(fd.getDirectory(),fd.getFile());
目录与文件都为Null,你再检查一下吧,我做事了,呵呵,祝你好运!