/*
练习:打开文件,保存文件
弹出的会话窗口
FileDialog openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);//第三个参数是加载
FileDialog saveDialog=new FileDialog(f,"我要打开",FileDialog.SAVE);//第三个参数是保存
*/
package mymenu;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyMenuTest
{
private Frame f;
private MenuBar bar;
private Menu fileMenu;
private MenuItem openItem,saveItem,quitItem;
private FileDialog openDialog,saveDialog;
private TextArea ta;
private File file;
MyMenuTest()
{
init();
}
public void init()
{
f=new Frame("我的电脑");
f.setBounds(300,200,600,500);
ta=new TextArea();
f.add(ta);
bar=new MenuBar();
fileMenu=new Menu("文件");
openItem=new MenuItem("打开");
saveItem=new MenuItem("保存");
quitItem=new MenuItem("退出");
bar.add(fileMenu);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(quitItem);
f.setMenuBar(bar);
openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);
saveDialog=new FileDialog(f,"我要保存",FileDialog.SAVE);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
//打开本机中的文件到Frame中的组件TextArea中
openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openDialog.setVisible(true);//弹出的对话框要设置为可见
String dirPath = openDialog.getDirectory();
String fileName = openDialog.getFile();
//System.out.println(dirPath+"---"+fileName);
if (dirPath==null||fileName==null)
return;
ta.setText("");
file = new File(dirPath,fileName);
try
{
BufferedReader bufr = new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
bufr.close();
}
catch (Exception ex)
{
throw new RuntimeException("读写失败");
}
}
});
//保存TextArea中的内容到本机文本中
saveItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDialog.setVisible(true);
String dirPath=saveDialog.getDirectory();
String fileName=saveDialog.getFile();
if(dirPath==null||fileName==null)
return;
file=new File(dirPath,fileName);
}
try
{
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
String text = ta.getText();
bufw.write(text);
bufw.close();
}
catch (Exception ex)
{
throw new RuntimeException("写入失败");
}
}
});
quitItem.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 MyMenuTest();
}
}