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