当幸福莱敲门

导航

 
  1 /*
  2  *计事本开发
  3  *字节
  4  *
  5  */
  6 package com.test3;
  7 import java.io.*;
  8 import java.awt.*;
  9 import java.awt.event.ActionEvent;
 10 import java.awt.event.ActionListener;
 11 
 12 import javax.swing.*;
 13 
 14 public class Notepad extends JFrame implements ActionListener{
 15     //定义需要要组件
 16     JTextArea jta=null;
 17     //定义菜单条
 18     JMenuBar jmb=null;
 19     //定义子菜单
 20     JMenu jm1=null;
 21     //定义子菜单中的小菜单
 22     JMenuItem jml1=null;
 23     JMenuItem jml2=null;
 24     public static void main(String[] args) {
 25         Notepad not=new Notepad();
 26     }
 27     public Notepad()
 28     {
 29         //创建文本域
 30         jta=new JTextArea();
 31         //创建菜单
 32         jmb=new JMenuBar();
 33         jm1=new JMenu("文件");
 34         
 35         //设置助记符
 36         jm1.setMnemonic('F');
 37         //设置最小菜单
 38         jml1=new JMenuItem("打开",new ImageIcon("win.png"));
 39         jml2=new JMenuItem("另存为",new ImageIcon("servir.png"));
 40         //注册监听对打开进行事件监听
 41         jml1.addActionListener(this);
 42         jml1.setActionCommand("open");
 43         
 44         //注册监听对保存进行事件监听
 45         jml2.addActionListener(this);
 46         jml2.setActionCommand("svr");
 47         
 48         //加入
 49         this.setJMenuBar(jmb);
 50         //把jm1放入jmb
 51         jmb.add(jm1);
 52         //把item放入Menu
 53         jm1.add(jml1);
 54         jm1.add(jml2);
 55         this.add(jta);
 56         //设置面板大小
 57         this.setSize(400,300);
 58         this.setTitle("记事本");
 59         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 60         this.setVisible(true);
 61     }
 62     //实现鼠标接口
 63     @Override
 64     public void actionPerformed(ActionEvent e) {
 65         // TODO Auto-generated method stub
 66         if (e.getActionCommand().equals("open")) {
 67             System.out.println("打开");
 68             //文件选择组件
 69             JFileChooser jfc1=new JFileChooser();
 70             //设置名字
 71             jfc1.setDialogTitle("请选择文件...");
 72             //使用默认方式
 73             jfc1.showOpenDialog(null);
 74             //显示
 75             jfc1.setVisible(true);
 76             //得到用户选择文件的全路径,绝对路径
 77             String filename=jfc1.getSelectedFile().getAbsolutePath();
 78             
 79             FileReader fr=null;
 80             BufferedReader br=null;
 81             
 82             try {
 83                 fr=new FileReader(filename);
 84                 br=new BufferedReader(fr);
 85                 
 86                 //从文件中读取信息并显示开jta就是文本组件
 87                 
 88                 String s="";
 89                 String allCon="";
 90                 while ((s=br.readLine())!=null) {
 91                     allCon+=s+"\r\n";
 92                     
 93                 }
 94                 //放入组件即可
 95                 jta.setText(allCon);
 96             } catch (Exception e2) {
 97                 // TODO: handle exception
 98                 e2.printStackTrace();
 99             }finally{
100                 //必须关闭文件流
101                 try {
102                     br.close();
103                     fr.close();
104                 } catch (Exception e3) {
105                     // TODO: handle exception
106                     e3.printStackTrace();
107                 }
108             }
109             //调试输出路径
110             System.out.println(filename);
111         }else if (e.getActionCommand().equals("svr")) {
112             System.out.println("保存");
113             //出现保存对话框
114             JFileChooser jfc=new JFileChooser();
115             jfc.setDialogTitle("另存为");
116             //默认方式显示
117             jfc.showSaveDialog(null);
118             //显示出来
119             jfc.setVisible(true);
120             
121             //得到用户希望把文件保存到何处的全路径
122             String file=jfc.getSelectedFile().getAbsolutePath();
123             
124             //准备写入到指定文件
125             FileWriter fw=null;
126             BufferedWriter bw=null;
127             
128             try {
129                 fw=new FileWriter(file);
130                 bw=new BufferedWriter(fw);
131                 //把文件写出去
132                 bw.write(this.jta.getText());
133             } catch (Exception e2) {
134                 // TODO: handle exception
135                 e2.printStackTrace();
136             }finally{
137                 try {
138                     bw.close();
139                     fw.close();
140                 } catch (Exception e3) {
141                     // TODO: handle exception
142                     e3.printStackTrace();
143                 }
144             }
145         }
146     }
147 }

 

posted on 2020-09-09 08:35  当幸福莱敲门  阅读(228)  评论(0)    收藏  举报