java简易的记事本(打开、保存、另存为、退出...)

  1 package pay;
  2 
  3 import java.awt.Dimension;
  4 import java.awt.FileDialog;
  5 import java.awt.TextArea;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.io.BufferedReader;
  9 import java.io.BufferedWriter;
 10 import java.io.File;
 11 import java.io.FileInputStream;
 12 import java.io.FileNotFoundException;
 13 import java.io.FileReader;
 14 import java.io.FileWriter;
 15 import java.io.IOException;
 16 import java.io.InputStreamReader;
 17 
 18 import javax.swing.JFrame;
 19 import javax.swing.JMenu;
 20 import javax.swing.JMenuBar;
 21 import javax.swing.JMenuItem;
 22 
 23 
 24 /** 
 25  * @author Chase QQ: 594126573
 26  * @version 创建时间:2012-1-5   下午02:54:44
 27  * 类说明 
 28  */
 29 
 30 public class TestText extends JFrame implements ActionListener{
 31 
 32     JMenu menu1, menu2, menu3, menu4;//菜单
 33     JMenuItem mt1, mt2, mt3, mt4, mt31; //子菜单
 34     FileDialog save, open; //保存、打开的窗口
 35     TextArea textArea; //文本域
 36     FileWriter fw;
 37     BufferedWriter bw;
 38     FileReader fr;
 39     BufferedReader br;
 40     String oldFile;
 41     String oldFolder;
 42     /**
 43      * 程序入口函数
 44      * @param args
 45      */
 46     public static void main(String[] args) {
 47         new TestText();
 48     }
 49     
 50     public TestText() {
 51         super("记事本");
 52         
 53         /**
 54          * 菜单栏
 55          */
 56         JMenuBar menuBar = new JMenuBar();
 57         menu1 = new JMenu("文件(F)",true);
 58         menu1.setMnemonic('F');
 59         mt1 = new JMenuItem("新建(N)",'N');
 60         mt1.setMnemonic('N');
 61         mt2 = new JMenuItem("打开(O)",'O');
 62         mt2.addActionListener(this);
 63         mt2.setMnemonic('O');
 64         mt3 = new JMenuItem("保存(S)",'S');
 65         mt3.addActionListener(this);
 66         mt3.setMnemonic('S');
 67         mt31 = new JMenuItem("另存为...");
 68         mt31.addActionListener(this);
 69         mt4 = new JMenuItem("退出(X)",'X');
 70         mt4.addActionListener(this);
 71         mt4.setMnemonic('X');
 72         
 73         menu2 = new JMenu("编辑(E)",true);
 74         
 75         
 76         this.setJMenuBar(menuBar);
 77         menuBar.add(menu1);
 78         menuBar.add(menu2);
 79         menu1.add(mt1);
 80         menu1.add(mt2);
 81         menu1.add(mt3);
 82         menu1.add(mt31);
 83         menu1.addSeparator();
 84         menu1.add(mt4);
 85         
 86         /**
 87          * 文本域
 88          */
 89         textArea = new TextArea("", 10, 10, TextArea.SCROLLBARS_VERTICAL_ONLY);
 90         save = new FileDialog(this, "保存文件对话框", FileDialog.SAVE);
 91         open = new FileDialog(this, "打开文件对话框", FileDialog.LOAD);
 92         
 93         add(textArea);
 94         
 95         Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
 96         this.setSize(600, 600);
 97         this.setLocation(screenSize.width/2-this.getWidth()/2,screenSize.height/2-this.getHeight()/2);
 98         this.setVisible(true);
 99     }
100 
101     public void actionPerformed(ActionEvent e) {
102         /**
103          * 打开文件
104          */
105         if (e.getSource().equals(mt2)) {
106             open();
107         }
108         /**
109          * 保存文件
110          */
111         if (e.getSource().equals(mt3)) {
112             save();
113         }
114         /**
115          * 文件另存为
116          */
117         if (e.getSource().equals(mt31)) {
118             saveTo();
119         }
120         /**
121          * 退出
122          */
123         if (e.getSource().equals(mt4)) {
124             exit();
125         }
126     }
127 
128     /**
129      * 退出记事本
130      */
131     private void exit() {
132         System.exit(0);
133     }
134 
135     /**
136      * 打开文件对话框
137      */
138     private void open() {
139         String s;
140         open.setVisible(true);
141         /**
142          * 打开文件
143          */
144         if (open.getFile() != null) {
145             oldFile = open.getFile();
146             oldFolder = open.getDirectory();
147             File file = new File(open.getDirectory(), open.getFile());
148             try {
149                 fr = new FileReader(file);
150                 String encoding = fr.getEncoding();
151                 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file),encoding);
152                 br = new BufferedReader(inputStreamReader);
153                 textArea.setText("");
154                 while ((s = br.readLine())!= null) {
155                     textArea.append(s + "\r\n");
156                 }
157                 fr.close();
158                 inputStreamReader.close();
159                 br.close();
160             } catch (FileNotFoundException e) {
161                 e.printStackTrace();
162             } catch (IOException e) {
163                 e.printStackTrace();
164             }
165         }
166     }
167     
168     /**
169      * 文件另存为
170      * @throws IOException 
171      */
172     private void saveTo(){
173         save.setVisible(true);
174         /**
175          * 保存文件
176          */
177         try {
178             if (save.getFile() != null) {
179                 File file = new File(save.getDirectory(),save.getFile());
180                 fw = new FileWriter(file);
181                 bw = new BufferedWriter(fw);
182                 bw.write(textArea.getText(), 0, (textArea.getText()).length());
183                 bw.flush();
184                 bw.close();
185                 fw.close();
186             }
187         } catch (Exception e) {
188             e.printStackTrace();
189         }
190     }
191 
192     /**
193      * 保存文件
194      */
195     private void save() {
196         String oldFile = this.oldFile;
197         String oldFolder = this.oldFolder;
198         if (oldFile != null && oldFolder != null) {
199             File file = new File(oldFolder,oldFile);
200             if (file.exists()) {
201                 try {
202                     file.createNewFile();
203                     fw = new FileWriter(file);
204                     bw = new BufferedWriter(fw);
205                     bw.write(textArea.getText(), 0, (textArea.getText()).length());
206                     bw.flush();
207                     bw.close();
208                     fw.close();
209                 } catch (IOException e) {
210                     e.printStackTrace();
211                 }
212             }
213         } else {
214             saveTo();
215         }
216         
217     }
218 }

更多:
http://www.dream-chase.com
原文地址:https://www.cnblogs.com/chasewade/p/Chase.html