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