1 package peng_jun;
  2 
  3 import java.awt.*;
  4 import java.awt.event.*;
  5 import javax.swing.*;
  6 import javax.swing.event.*;
  7 import java.util.*;
  8 import java.io.*;
  9 import javax.swing.filechooser.*;
 10 import javax.swing.filechooser.FileFilter;
 11 import java.awt.datatransfer.*;
 12 
 13 public class Text extends JFrame {
 14     TextArea area;//文本域
 15     String name = null;//文件名
 16     String board = null;
 17     private Clipboard cb;//系统粘贴板
 18 
 19     Text() throws Exception {//构造函数
 20         setTitle("记事本");
 21         Toolkit kit = Toolkit.getDefaultToolkit();//Toolkit获得本机系统的屏幕的参数
 22         //Image img = kit.getImage("01.jpg");
 23         //setIconImage(img);
 24         
 25         
 26         JMenuBar jmb = new JMenuBar();//创建菜单条
 27         add(jmb);
 28         setJMenuBar(jmb);
 29         area = new TextArea();
 30         add(area);
 31         
 32         JMenu file = new JMenu("文件");//定义“文件”菜单项
 33         JMenuItem rebuild = new JMenuItem("新建");
 34         rebuild.setAccelerator(KeyStroke.getKeyStroke("ctrl N"));
 35         JMenuItem save = new JMenuItem("保存");
 36         save.setAccelerator(KeyStroke.getKeyStroke("ctrl S"));
 37         JMenuItem open = new JMenuItem("打开");
 38         open.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));
 39         JMenuItem anotherSave = new JMenuItem("另存为");
 40         file.add(rebuild);
 41         file.add(save);
 42         file.add(open);
 43         file.add(anotherSave);
 44         // JScrollPane scroldPane=new JScrollPane(area); //设置滚动轴
 45         // add(scroldPane);
 46         JMenu edit = new JMenu("编辑");//定义“编辑”菜单项
 47         JMenuItem cut = new JMenuItem("剪切");
 48         cut.setAccelerator(KeyStroke.getKeyStroke("ctrl X"));
 49         JMenuItem copy = new JMenuItem("复制");
 50         copy.setAccelerator(KeyStroke.getKeyStroke("ctrl C"));
 51         JMenuItem plaster = new JMenuItem("粘贴");
 52         plaster.setAccelerator(KeyStroke.getKeyStroke("ctrl V"));
 53         JMenuItem all = new JMenuItem("全选");
 54         all.setAccelerator(KeyStroke.getKeyStroke("ctrl A"));
 55         edit.add(cut);
 56         edit.add(copy);
 57         edit.add(plaster);
 58         edit.add(all);
 59         JMenu help = new JMenu("帮助");//定义“帮助”菜单项
 60         JMenuItem about = new JMenuItem("关于");
 61         help.add(about);
 62         
 63         jmb.add(file);
 64         jmb.add(edit);
 65         jmb.add(help);
 66         setSize(600, 400);
 67         //setLocation(300, 200);
 68         setVisible(true);
 69         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 70         
 71         cb = Toolkit.getDefaultToolkit().getSystemClipboard();//调用系统剪贴板
 72         save.addActionListener(new ActionListener() {
 73             public void actionPerformed(ActionEvent e) {
 74                 try {
 75                     saveText();
 76                 } catch (Exception ex) {
 77                 }
 78             }
 79         });
 80         open.addActionListener(new ActionListener() {
 81             public void actionPerformed(ActionEvent e) {
 82                 try {
 83                     openText();
 84                 } catch (Exception ex) {
 85                 }
 86             }
 87         });
 88         rebuild.addActionListener(new ActionListener() {
 89             public void actionPerformed(ActionEvent e) {
 90                 try {
 91                     area.setText("");
 92                     name = null;
 93                 } catch (Exception ex) {
 94                 }
 95             }
 96         });
 97         anotherSave.addActionListener(new ActionListener() {
 98             public void actionPerformed(ActionEvent e) {
 99                 anotherSaveText();
100             }
101         });
102         
103         cut.addActionListener(new ActionListener() // 剪切
104         {
105             public void actionPerformed(ActionEvent e) {
106                 board = area.getSelectedText();
107                 cb.setContents(new StringSelection(board), null);
108                 area.replaceRange("", area.getSelectionStart(),
109                         area.getSelectionEnd());
110             }
111         });
112         copy.addActionListener(new ActionListener() // 复制
113         {
114             public void actionPerformed(ActionEvent e) {
115                 board = area.getSelectedText();
116                 cb.setContents(new StringSelection(board), null);
117             }
118         });
119         plaster.addActionListener(new ActionListener() // 粘贴
120         {
121             public void actionPerformed(ActionEvent e) {
122                 try {
123                     Transferable content = cb.getContents(null);
124                     String st = (String) content
125                             .getTransferData(DataFlavor.stringFlavor);
126                     area.replaceRange(st, area.getSelectionStart(),
127                             area.getSelectionEnd());
128                 } catch (Exception ex) {
129                 }
130             }
131         });
132         all.addActionListener(new ActionListener() // 全选
133         {
134             public void actionPerformed(ActionEvent e) {
135                 area.setSelectionStart(0);
136                 area.setSelectionEnd(area.getText().length());
137             }
138         });
139         about.addActionListener(new ActionListener() {//帮助
140             public void actionPerformed(ActionEvent e) {
141                 JFrame frame = new JFrame("关于");
142                 frame.setSize(150, 100);
143                 frame.setLocation(400, 300);
144                 JTextArea area1 = new JTextArea("java简易文本编辑器");
145                 frame.add(area1);
146                 frame.setVisible(true);
147             }
148         });
149     }
150 
151     public void openText() // 打开
152     {
153         JFileChooser chooser = new JFileChooser();
154         FileNameExtensionFilter filter = new FileNameExtensionFilter("Files",
155                 "txt", "java");
156         chooser.setFileFilter(filter);
157         chooser.setCurrentDirectory(new File("."));
158         int result = chooser.showOpenDialog(Text.this);
159         if (result == JFileChooser.APPROVE_OPTION) {
160             name = chooser.getSelectedFile().getPath();
161             setTitle(name);
162             try {
163                 BufferedReader in = new BufferedReader(new FileReader(name));
164                 String line = null;
165                 String datas = "";
166                 while ((line = in.readLine()) != null) {
167                     if (datas == "") {
168                         datas = datas + line;
169                     } else {
170                         datas = datas + "\n" + line;
171                     }
172                 }
173                 area.setText(datas);
174                 in.close();
175             } catch (Exception ex) {
176             }
177         }
178     }
179 
180     public void saveText() // 保存
181     {
182         if (name == null) {
183             JFileChooser chooser = new JFileChooser();
184             FileNameExtensionFilter filter = new FileNameExtensionFilter(
185                     "Files", "txt", "java");
186             chooser.setFileFilter(filter);
187             chooser.setCurrentDirectory(new File("."));
188             int result = chooser.showSaveDialog(Text.this);
189             if (result == JFileChooser.APPROVE_OPTION) {
190                 name = chooser.getSelectedFile().getPath();
191                 try {
192                     OutputStream out = new FileOutputStream(name);
193                     String datas = area.getText();
194                     out.write(datas.getBytes());
195                     out.close();
196                 } catch (Exception ex) {
197                 }
198             }
199         } else {
200             try {
201                 OutputStream out = new FileOutputStream(name);
202                 String datas = area.getText();
203                 out.write(datas.getBytes());
204                 out.close();
205             } catch (Exception ex) {
206             }
207         }
208     }
209 
210     public void anotherSaveText() // 另存为
211     {
212         JFileChooser chooser = new JFileChooser();
213         FileNameExtensionFilter filter = new FileNameExtensionFilter("Files",
214                 "txt", "java");
215         chooser.setFileFilter(filter);
216         chooser.setCurrentDirectory(new File("."));
217         int result = chooser.showSaveDialog(Text.this);
218         if (result == JFileChooser.APPROVE_OPTION) {
219             name = chooser.getSelectedFile().getPath();
220             try {
221                 OutputStream out = new FileOutputStream(name);
222                 String datas = area.getText();
223                 out.write(datas.getBytes());
224                 out.close();
225             } catch (Exception ex) {
226             }
227         }
228     }
229 
230     public static void main(String[] args) throws Exception {
231         new Text();
232     }
233 }

 

版权声明:本文为xs-yqz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xs-yqz/p/4539479.html