最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單記事本java源碼實例

 更新時間:2014年11月25日 11:35:58   投稿:shichen2014  
這篇文章主要介紹了簡單記事本java源碼,以一個完整的實例形式分析了記事本的Java實現(xiàn)方法,對于Java應用程序的開發(fā)有一定的參考借鑒價值,需要的朋友可以參考下

本文實例講述了簡單記事本java實現(xiàn)代碼。分享給大家供大家參考。具體如下:

完整代碼如下:

復制代碼 代碼如下:
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
 
public class Main extends Frame implements ActionListener {
        private static final long serialVersionUID = 1L;
TextArea textArea = new TextArea();
   MenuBar menuBar = new MenuBar();
   Menu fileMenu = new Menu("File");
   MenuItem newItem = new MenuItem("New");
   MenuItem openItem = new MenuItem("Open");
   MenuItem saveItem = new MenuItem("Save");
   MenuItem saveAsItem = new MenuItem("Save As");
   MenuItem exitItem = new MenuItem("Exit");
   Menu editMenu = new Menu("Edit");
   MenuItem selectItem = new MenuItem("Select All");
   MenuItem copyItem = new MenuItem("Copy");
   MenuItem cutItem = new MenuItem("Cut");
   MenuItem pasteItem = new MenuItem("Paste");
   String fileName = null;
   Toolkit toolKit=Toolkit.getDefaultToolkit();
   Clipboard clipBoard=toolKit.getSystemClipboard();
   
    private FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD);
    private FileDialog saveAsFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE);
 
  public Main(){
    setTitle("記事本程序-by Jackbase");
    setFont(new Font("Times New Roman",Font.PLAIN,12));
    setBackground(Color.white);
    setSize(400,300);
    fileMenu.add(newItem);
    fileMenu.add(openItem);
    fileMenu.addSeparator();
    fileMenu.add(saveItem);
    fileMenu.add(saveAsItem);
    fileMenu.addSeparator();
    fileMenu.add(exitItem);
    editMenu.add(selectItem);
    editMenu.addSeparator();
    editMenu.add(copyItem);
    editMenu.add(cutItem);
    editMenu.add(pasteItem);
    menuBar.add(fileMenu);
    menuBar.add(editMenu);
    setMenuBar(menuBar);
    add(textArea);
    addWindowListener(new WindowAdapter(){
                      public void windowClosing(WindowEvent e){
                          System.exit(0);
                        }
                      });
    newItem.addActionListener(this);
    openItem.addActionListener(this);
    saveItem.addActionListener(this);
    saveAsItem.addActionListener(this);
    exitItem.addActionListener(this);
    selectItem.addActionListener(this);
    copyItem.addActionListener(this);
    cutItem.addActionListener(this);
    pasteItem.addActionListener(this);
  }
 
  public void actionPerformed(ActionEvent e) {  //監(jiān)聽事件
    Object eventSource = e.getSource();
    if(eventSource == newItem){
      textArea.setText("");
    }else if(eventSource == openItem){
      openFileDialog.show();
      fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
      if(fileName != null)
        readFile(fileName);
    }else if (eventSource == saveItem){
      if(fileName != null)
        writeFile(fileName);
    }else if(eventSource == saveAsItem){
      saveAsFileDialog.show();
      fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
      if (fileName!= null)
        writeFile(fileName);
    }else if(eventSource == selectItem){
       textArea.selectAll();
    }else if(eventSource == copyItem){
       String text=textArea.getSelectedText();
       StringSelection selection=new StringSelection(text);
       clipBoard.setContents(selection,null);
    }else if(eventSource == cutItem){
       String text=textArea.getSelectedText();
       StringSelection selection=new StringSelection(text);
       clipBoard.setContents(selection,null);
       textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());
    }else if(eventSource == pasteItem){
       Transferable contents=clipBoard.getContents(this);
       if(contents==null) return;
       String text;
       text="";
       try{
            text=(String)contents.getTransferData(DataFlavor.stringFlavor);
        }catch(Exception exception){
        }
       textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
    }else if(eventSource == exitItem){
      System.exit(0);
    }
  }
 
  public void readFile(String fileName){ //讀取文件處理
    try{
      File file = new File(fileName);
      FileReader readIn = new FileReader(file);
      int size = (int)file.length();
      int charsRead = 0;
      char[] content = new char[size];
      while(readIn.ready())
        charsRead += readIn.read(content, charsRead, size - charsRead);
      readIn.close();
      textArea.setText(new String(content, 0, charsRead));
    }
    catch(IOException e){
      System.out.println("Error opening file");
    }
  }
 
  public void writeFile(String fileName){  //寫入文件處理
    try{
      File file = new File (fileName);
      FileWriter writeOut = new FileWriter(file);
      writeOut.write(textArea.getText());
      writeOut.close();
    }
    catch(IOException e){
      System.out.println("Error writing file");
    }
  }
 
    @SuppressWarnings("deprecation")
        public static void main(String[] args){
      Frame frame = new Main(); //創(chuàng)建對象
      frame.show();   //是對象顯示
   }
}

運行結果如下圖所示:

希望本文所述對大家的java程序設計有所幫助。

  • Java字符串相關類使用方法詳解

    Java字符串相關類使用方法詳解

    String、StringBuilder、StringBuffer還傻傻分不清,下面這篇文章主要給大家介紹了關于Java字符串相關類使用的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Spring Boot2.X中findOne的使用詳解

    Spring Boot2.X中findOne的使用詳解

    這篇文章主要介紹了Spring Boot2.X中findOne的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 基于java HashMap插入重復Key值問題

    基于java HashMap插入重復Key值問題

    這篇文章主要介紹了基于java HashMap插入重復Key值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 新手了解java 集合基礎知識

    新手了解java 集合基礎知識

    今天小編就為大家分享一篇關于Java集合總結,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧,希望對你有所幫助
    2021-07-07
  • IDEA編寫JavaWeb出現(xiàn)亂碼問題解決方案

    IDEA編寫JavaWeb出現(xiàn)亂碼問題解決方案

    這篇文章主要介紹了IDEA編寫JavaWeb出現(xiàn)亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Spring詳細解讀事務管理

    Spring詳細解讀事務管理

    Spring事務的本質(zhì)就是對數(shù)據(jù)庫事務的支持,沒有數(shù)據(jù)庫事務,Spring是無法提供事務功能的。Spring只提供統(tǒng)一的事務管理接口,具體實現(xiàn)都是由數(shù)據(jù)庫自己實現(xiàn)的,Spring會在事務開始時,根據(jù)當前設置的隔離級別,調(diào)整數(shù)據(jù)庫的隔離級別,由此保持一致
    2022-04-04
  • 基于java中BlockingQueue的使用介紹

    基于java中BlockingQueue的使用介紹

    本篇文章小編為大家介紹,基于java中BlockingQueue的使用介紹。需要的朋友參考下
    2013-04-04
  • Centos7.3下jre1.8安裝和配置教程

    Centos7.3下jre1.8安裝和配置教程

    這篇文章主要為大家詳細介紹了Centos7.3下jre1.8安裝和配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 最新評論

    维西| 佛冈县| 静海县| 无锡市| 曲麻莱县| 师宗县| 黑山县| 石泉县| 绥化市| 南宁市| 兰坪| 浦东新区| 崇文区| 会昌县| 上蔡县| 旅游| 广东省| 伊宁市| 德兴市| 天长市| 高淳县| 阜新| 鸡西市| 定襄县| 延边| 新邵县| 郸城县| 满城县| 宕昌县| 黄梅县| 长春市| 海兴县| 鄯善县| 连平县| 平和县| 饶阳县| 类乌齐县| 鄂托克旗| 旬邑县| 新建县| 永宁县|