一個簡單的記事本

來源:互聯網
上載者:User

一個簡單的記事本。版本V1.0 

支援:檔案的建立,開啟,儲存,唯讀,退出(含快速鍵)

Code:
  1. package myclass.notepad;   
  2.   
  3. import java.awt.Frame;   
  4. import java.awt.HeadlessException;   
  5. import java.awt.event.*;   
  6. import java.awt.MenuBar;   
  7. import java.awt.Menu;   
  8. import java.awt.MenuItem;   
  9. import java.awt.MenuShortcut;   
  10. import java.awt.CheckboxMenuItem;   
  11. import java.awt.FileDialog;   
  12. import java.io.FileInputStream;   
  13. import java.io.*;   
  14. import java.awt.TextArea;   
  15.   
  16. /**  
  17.  * <p>Title:記事本 </p>  
  18.  * <p>Description:簡單的記事本程式 </p>  
  19.  * <p>Copyright: Copyright (c) 2010</p>  
  20.  * <p>Company:new core </p>  
  21.  * @author not attributable  
  22.  * @version 1.0  
  23.  */  
  24.   
  25. public class Notepad  {   
  26. public static String path=null;   
  27.   public static void main(String[] args) throws HeadlessException {   
  28.    final Frame frame=new Frame("簡單的記事本");   
  29.     frame.setSize(800,600);   
  30.     frame.setLocation(200,200);   
  31.     frame.addWindowListener(new WindowAdapter() {   
  32.             public void windowClosing(WindowEvent e) {   
  33.               System.exit(0);   
  34.             }   
  35.           });   
  36.     MenuBar bar=new MenuBar();   
  37.     Menu menu=new Menu("檔案",true);   
  38.     menu.addSeparator();   
  39.     Menu menu1=new Menu("編輯",true);   
  40.      menu1.addSeparator();   
  41.    Menu more=new Menu("更多");   
  42.   
  43.    final TextArea ta=new TextArea();   
  44.   
  45.      MenuShortcut ms = new MenuShortcut(KeyEvent.VK_S, false);   
  46.     MenuShortcut ms1 = new MenuShortcut(KeyEvent.VK_O, false);   
  47.     MenuShortcut ms2 = new MenuShortcut(KeyEvent.VK_F4, false);   
  48.     MenuItem mi=new MenuItem("建立");   
  49.     mi.addActionListener(new ActionListener() {   
  50.          public void actionPerformed(ActionEvent e) {   
  51.            ta.setText("");   
  52.          }   
  53.        });   
  54.     MenuItem mi1=new MenuItem("開啟",ms1);   
  55.    final CheckboxMenuItem cm=new CheckboxMenuItem("唯讀",false);   
  56.    cm.addItemListener(new ItemListener() {   
  57.         public void itemStateChanged(ItemEvent e) {   
  58.           if(cm.getState()){   
  59.             ta.setEditable(false);   
  60.           }else{   
  61.             ta.setEditable(true);   
  62.           }   
  63.   
  64.         }   
  65.       });   
  66.     mi1.addActionListener(new ActionListener() {   
  67.           public void actionPerformed(ActionEvent e) {   
  68.             FileDialog fd=new FileDialog(frame,"開啟檔案",FileDialog.LOAD);   
  69.             fd.show();   
  70.             //System.out.println(fd.getFile());   
  71.               path=fd.getDirectory()+fd.getFile();   
  72.               //System.out.println(path);   
  73.             if(path!=null){   
  74.               try {   
  75.                 FileInputStream is = new FileInputStream(path);   
  76.                 byte b[]=new byte[10*1024];   
  77.                   int len = is.read(b);   
  78.                   if(cm.getState()){   
  79.                     ta.setEditable(false);   
  80.                     }   
  81.                   //清空先前的內容   
  82.                   ta.setText("");   
  83.                   ta.append(new String(b,0,len));   
  84.               }   
  85.               catch (FileNotFoundException ex) {   
  86.                 System.out.println("找不到該檔案");   
  87.               }   
  88.               catch (IOException ex1) {   
  89.                 }   
  90.             }   
  91.           }   
  92.         });   
  93.   
  94.     MenuItem separa=new MenuItem("-");   
  95.     MenuItem mi2=new MenuItem("儲存",ms);   
  96.   
  97.     mi2.addActionListener(new ActionListener() {   
  98.               public void actionPerformed(ActionEvent e) {   
  99.                  String a=ta.getText();   
  100.                 if(path!=null){   
  101.                   BufferedWriter wri = null;   
  102.                   try {   
  103.                     wri = new BufferedWriter(new FileWriter(path));   
  104.                     wri.write(a);   
  105.                     wri.close();   
  106.                   }   
  107.                   catch (IOException ex1) {   
  108.                   }   
  109.   
  110.                }else{   
  111.   
  112.                  FileDialog fd=new FileDialog(frame,"儲存檔案",FileDialog.SAVE);   
  113.                  fd.show();   
  114.   
  115.                  String path1=fd.getDirectory()+fd.getFile();   
  116.                try {   
  117.                  BufferedWriter wri = new BufferedWriter(new FileWriter(path1+".txt"));   
  118.                  wri.write(a);   
  119.                  wri.close();   
  120.                }   
  121.                catch (IOException ex) {   
  122.                }   
  123.   
  124.                }   
  125.   
  126.               }   
  127.             });   
  128.   
  129.     MenuItem mi3=new MenuItem("複製");   
  130.     MenuItem mi4=new MenuItem("粘貼");   
  131.     MenuItem mi5=new MenuItem("剪下");   
  132.   
  133.     MenuItem mi7=new MenuItem("另存新檔");   
  134.    MenuItem mi8=new MenuItem("版面設定");   
  135.    MenuItem mi9=new MenuItem("列印");   
  136.    MenuItem mi10=new MenuItem("退出",ms2);   
  137.    mi10.addActionListener((new ActionListener() {   
  138.                             public void actionPerformed(ActionEvent e) {   
  139.                               System.exit(0);   
  140.                             }   
  141.                           })   
  142.                            );   
  143.   
  144.     menu.add(mi);   
  145.     menu.add(mi1);   
  146.     menu.add(separa);   
  147.     menu.add(mi2);   
  148.     menu.add(cm);   
  149.     menu.add(more);   
  150.     menu.add(mi10);   
  151.     menu1.add(mi3);   
  152.     menu1.add(mi4);   
  153.     menu1.add(mi5);   
  154.   
  155.     more.add(mi7);   
  156.     more.add(mi8);   
  157.     more.add(mi9);   
  158.   
  159.     bar.add(menu);   
  160.     bar.add(menu1);   
  161.     frame.setMenuBar(bar);   
  162.     frame.add(ta);   
  163.     frame.show();   
  164.   }   
  165.   
  166. }  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.