zoukankan      html  css  js  c++  java
  • java简易编辑器

      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 + "
    " + 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 }
  • 相关阅读:
    计算机操作系统第四、五章自测题-存储管理
    oracle进制转换
    表空间、数据文件增长情况
    游标、type使用示例
    Linux如何查找大文件或目录总结-1127
    Linux如何查找大文件或目录总结
    工具: ass109.awk 分析 Oracle 的跟踪文件
    分页存储过程
    CSDN Oracle版精华帖荟萃
    vi 替换字符串
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4539479.html
Copyright © 2011-2022 走看看