黑马程序员-GUI窗体实现文件打开保存

---------------------- 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培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值