黑马程序员---简单的文件打开器

来源:互联网 发布:esxi5安装mac os 编辑:程序博客网 时间:2024/05/29 05:11

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

/*模拟一个简单的文本文件实现打开文本文件,和保存的功能*/package mymenu;import java.awt.*;import java.awt.event.*;import java.io.*;class  MyText{public static void main(String[] args) {new MyMenu();}}class MyMenu{//定义需要的窗体,按钮,菜单,文本区域private Frame f;private Menu fileMenu;private MenuBar bar;private MenuItem closeItem,saveItem,openItem;private FileDialog openDia,saveDia;private TextArea ta;private File file;//初始化MyMenuMyMenu(){init();}public void init(){//创建窗体,设置属性,默认布局为边界式布局f = new Frame("我的窗体");f.setBounds(300,200,800,600);//创建菜单按钮bar = new MenuBar();fileMenu = new Menu("文件");closeItem = new MenuItem("退出");saveItem = new MenuItem("保存");openItem = new MenuItem("打开");//创建文件对话框,点打开和保存时但出来openDia = new FileDialog(f,"打开",FileDialog.LOAD);//后面的load不加,默认也是这个saveDia = new FileDialog(f,"保存",FileDialog.SAVE);//创建文本区域ta = new TextArea();//将条目添加到菜单上fileMenu.add(openItem);fileMenu.add(saveItem);fileMenu.add(closeItem);bar.add(fileMenu);f.setMenuBar(bar);//添加文本区域f.add(ta);//调用事件监听方法myEvent();//设置窗体显示f.setVisible(true);}//事件监听方法private void myEvent(){//打开条目的活动监听openItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){openDia.setVisible(true);String dirPath = openDia.getDirectory();String fileName = openDia.getFile();if(dirPath==null || fileName==null)return ;file = new File(dirPath,fileName);ta.setText("");BufferedReader bufr = null;try{bufr = new BufferedReader(new FileReader(file));String line = null;while ((line=bufr.readLine())!=null){ta.append(line+"\r\n");}}catch (IOException ex){throw new RuntimeException("文件打开异常");}finally{try{if (bufr!=null){bufr.close();}}catch (IOException iex){}}}});//保存条目的活动监听saveItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if (file==null){saveDia.setVisible(true);String dirPath = saveDia.getDirectory();String fileName = saveDia.getFile();if(dirPath==null || fileName==null)return ;file = new File(dirPath,fileName);}BufferedWriter bufw = null;try{bufw = new BufferedWriter(new FileWriter(file));String text = ta.getText();bufw.write(text);}catch (IOException ex){throw new RuntimeException("文件保存失败");}finally{try{if (bufw!=null){bufw.close();}}catch (IOException iex){}}}});//添加窗体的window监听f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//关闭退出的活动监听closeItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});}}


0 0