简单记事本java源码实例


本文实例讲述了简单记事本java实现代码。分享给大家供大家参考。具体如下:

完整代码如下:

复制代码 代码如下:
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) {  //监听事件
    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(); //创建对象
      frame.show();   //是对象显示
   }
}

运行结果如下图所示:

希望本文所述对大家的java程序设计有所帮助。



相关阅读:
mysql数据库优化总结(心得)
C#中is与as的区别分析
PHP设计模式之简单投诉页面实例
C#实现自定义FTP操作封装类实例
Win10下DX12实测:老卡老U能力翻3倍
Jquery插件easyUi表单验证提交(示例代码)
详解Linux中用于查询用户信息的finger和chfn命令
AngularJs学习第八篇 过滤器filter创建
html制作细线表格的简单实例
Jquery实现自定义tooltip示例代码
CSS3制作酷炫的三维相册效果
javascript中indexOf技术详解
js实现ArrayList功能附实例代码
C标准库<assert.h>的实现详解
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 从此,我不在一意孤行 广播电视主持人事迹材料 计算机专业生实习报告 天花板上的小情书 高中高三作文1000字:I love you 祖国 2016年二年级数学下册第1-2单元表格教案(苏教版) 依靠自己的脚站直_关于依靠的初中作文800字 寒假生活作文450字 ToExperiencetheLife-体验生活 描写情感的好句好段大全 胭脂血 红颜泪 得不到也让你忘不掉 红颜酒醉落花坊为卿舞 (090515周记)我的主课先生们 《罗辑思维》读后感 曲终人散场 考古笔记 . 作者:程汝明 小学六年级作文1000字:假文盲,真自私。 济南的秋天作文600字 诚信做人演讲稿300字 小学五年级作文450字:松鼠的自述 善行义举职业道德榜候选人事迹材料 禁毒心得体会作文 没商品信息的广告 农产品检验中心创卫工作情况汇报 初中初三作文700字:过年两三事 因为有爱作文500字 刚开始创业,需要防范的一些法律风险 保护小青蛙作文400字 2016——2017学年(下)教学工作计划 那天,我战胜了自己700字 元旦问候短信 夏之曲作文 2017春节是几月几号 读《考克斯报告》有感 《友谊歌》 教师学习十七届五中全会精神心得体会 公司董事长2016年年会讲话稿 成长路上,有你真好 我的轻骑 我家是个动物园 遥远的校歌 每个人期待著这一生能遇到一位知己 抉择 信任 拥有 关于四年级重阳节作文450字范文 女生励志歌曲推荐 原来我真的有一颗蛀牙 儿子结婚父母致辞答谢讲话 当你XX,你是否会XX “浸”的诗意 爱情语句:这世上,只有一种男人不会出轨

Copyright © 2016 phpStudy |