zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Application.Exit()结束程序,但线程还在的解决方法
    Myeclipse2014 SVN安装方法以及项目上传到svn服务器
    MyEclipse中把JSP默认编码改为UTF-8
    005_MyEclipse编码设置
    laravel5.2学习资源
    wechat-php-sdk
    微信邀请卡的开发
    微信JS-SDK实际分享功能
    每个Linux新手都应该记住的10个基本Linux命令
    Linux下定时备份数据库
  • 原文地址:https://www.cnblogs.com/chasewade/p/Chase.html
Copyright © 2011-2022 走看看