【一】需求
GUI练习:打开文件+保存文件
【二】代码
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MenuDemo2
{
private Frame f;
private MenuBar bar;
private Menu fileMenu;
private MenuItem openItem,saveItem,closeItem;
private FileDialog openDia,saveDia;
private TextArea ta;
private File file;
MenuDemo2(){
init();
}
public void init(){
f=new Frame("练习");
f.setBounds(200,250,500,400);
bar=new MenuBar();
f.setMenuBar(bar);
ta=new TextArea();
f.add(ta);
fileMenu=new Menu("文件");
bar.add(fileMenu);
openItem=new MenuItem("打开");
fileMenu.add(openItem);
saveItem=new MenuItem("保存");
fileMenu.add(saveItem);
closeItem=new MenuItem("关闭");
fileMenu.add(closeItem);
openDia=new FileDialog(f,"我要打开",FileDialog.LOAD);
saveDia=new FileDialog(f,"我要保存",FileDialog.SAVE);
f.setVisible(true);
myEvent();
}
private void myEvent(){
closeItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
saveItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(file==null){
saveDia.setVisible(true);
String dirPath=saveDia.getDirectory();
String fileName=saveDia.getFile();
//System.out.println(dirPath+"......"+fileName);
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 (IOException io)
{
throw new RuntimeException("异常");
}
}
});
openItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
openDia.setVisible(true);
String dirPath=openDia.getDirectory();
String fileName=openDia.getFile();
//System.out.println(dirPath+"......"+fileName);
if(dirPath==null||fileName==null)
return ;
ta.setText("");
File 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");
}
}
catch (IOException io)
{
throw new RuntimeException("异常");
}
}
});
//窗口点击X,退出
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MenuDemo2();
}
}
【三】截图
保存文件:
打开文件: