---------------------- android培训、java培训、期待与您交流! ----------------------
黑马程序员-GUI窗体实现文件打开保存
/*建立一个窗体
*有菜单栏,文本框
*菜单栏中有菜单列表
*列表中的菜单有活动监听,并具有一定的功能。
*可以实现打开和保存文件的功能。
* */
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class MyMenu
{
//定义图形中所需组件的引用
private Frame f;
private MenuBar mb;
private Menu m,subMenu,fileMenu;
private MenuItem closeItem,openItem,saveItem,subItem;
private FileDialog openDia,saveDia;
private File file;
private TextArea ta;
MyMenu()
{
init();
}
public void init()
{
f=new Frame("my frame");
//对frame进行基本设置。
f.setBounds(300,100,600,500);
//f.setLayout(new FlowLayout());
mb=new MenuBar();
//创建文件菜单
fileMenu=new Menu("文件");
//文件菜单中的子菜单
subMenu=new Menu("子菜单");
//子菜单打开的自条目
subItem=new MenuItem("子条目");
//打开对话框
openDia=new FileDialog(f,"我打开",FileDialog.LOAD);
//保存对话框
saveDia=new FileDialog(f,"我保存",FileDialog.SAVE);
//文本框
ta=new TextArea();
//创建打开,保存,退出子菜单。
openItem=new MenuItem("打开");
saveItem=new MenuItem("保存");
closeItem =new MenuItem("退出");
//将组建添加进frame中。
//添加打开到文件菜单
fileMenu.add(openItem);
//添加子菜单到文件菜单
fileMenu.add(subMenu);
//添加关闭选项
fileMenu.add(closeItem);
//添加保存选项
fileMenu.add(saveItem);
//添加子条目到子菜单
subMenu.add(subItem);
//将文件菜单添加到菜单栏
mb.add(fileMenu);
//将菜单栏加入窗体中
f.setMenuBar(mb);
//将文本框加入窗体中。
f.add(ta);
//加载窗体事件。
myEvent();
//显示窗体。
f.setVisible(true);
}
private void myEvent()
{
//菜单中“关闭”的活动监听,用于关闭窗口
closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//窗口监听,用于关闭窗口
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//打开选项的活动监听,用于打开对话框
openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//打开文件用到IO技术,用BufferedReader。
BufferedReader bufr;
//显示对话框。
openDia.setVisible(true);
//获取在对话框中选中的路径。
String dirPath=openDia.getDirectory();
//获取在对话框中选中的文件名。
String filename=openDia.getFile();
//判断文件路径和文件名是否存在。
if(dirPath==null ||filename==null)
return;
//清空文本框中原有的文件。
ta.setText("");
//创建文件对象。
file=new File(dirPath,filename);
try
{
//把文件中内容输出到文本框中。
bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine()) !=null)
{
ta.append(line+"\r\n");
}
//关闭流,应放在finally中,为简化代码放到这里。
bufr.close();
}
catch(IOException ex)
{
throw new RuntimeException("失败");
}
}
});
//保存选项的活动监听。用于打开保存对话框。
saveItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//判断文件是否已经存在,若已经存在则不打开对话框,直接进行保存。
if(file==null)
{
//显示 对话框
saveDia.setVisible(true);
BufferedWriter bufw;
String dirPath=openDia.getDirectory();
//获取在对话框中选中的路径。
String filename=openDia.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(IOException ex)
{
throw new RuntimeException("保存失败");
}
}
});
}
}
public class GUI3
{
public static void main(String[] args)
{
new MyMenu();
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------