用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();

}
}