用Java编写的记事本程序(1)

2016-02-19 20:05 25 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享用Java编写的记事本程序(1)的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

这个学期,我们学习了Java编程,期末之时老师要我们编个记事本作为这门课程的课程设计,我写了一个,大体上的功能都实现了,只有"撤销"的功能没有实现,请各位大虾指点一下,“撤销”的算法,不甚感激!
  特将记事本的源码附下,请大家指点,看还有没有更简洁高效的算法,请不要吝啬,我的E-mail:yangyong@ccsu.cn,欢迎大家来信指点!
  
  /*
  *
  *题目:记事本程序
  *Author: Jeason
  *
  * 2004-12-20
  *
  **/
  package jeason;
  
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  import javax.swing.event.*;
  import java.io.*;
  import java.util.*;
  import java.text.*;
  
  public class Jsb{
  
  ///
  boolean dirty=true;
  String filename="";
  String strtext="";
  
  
  ///////////////////////////////////
  ////////// Menu ////////////////
  ///////////////////////
  
  JFrame frame=new JFrame("我的记事本");
  JPopupMenu pop=new JPopupMenu("弹出");
  JTextArea text=new JTextArea();
  JLabel statubar=new JLabel("状态栏");
  JMenuBar Mbar=new JMenuBar();
  JFileChooser jFileChooser1=new JFileChooser();
  
  JColorChooser jColor=new JColorChooser();
  
  JMenu jFile=new JMenu("文件");
  JMenu jEdit=new JMenu("编辑");
  JMenu jFormat=new JMenu("格式");
  JMenu jHelp=new JMenu("帮助");
  
  JMenuItem jnew=new JMenuItem("新建(N)");
  
  public Jsb(){ ///无参数的构造函数
  
  ///
  this.dirty=false;
  /////
  
  final BorderLayout borderLayout1=new BorderLayout();
  
  frame.setSize(600,500);//
  frame.addWindowListener(new Jsb_frame_closingAdapter(this));
  
  JPanel panel=new JPanel();
  panel.setLayout(borderLayout1);//布局
  panel.add(new JScrollPane(text));//滚动条
  panel.add(statubar,borderLayout1.SOUTH);
  
  
  frame.getContentPane().add(panel);
  //
  frame.setJMenuBar(Mbar); //将主菜单添加到窗体中
  
  /*
  * jnew
  **/
  //jnew
  jnew.addActionListener(new File_new_actionAdapter(this));
  jnew.setMnemonic(´N´);//N上下划线
  jnew.setAccelerator(KeyStroke.getKeyStroke(´N´,java.awt.Event.CTRL_MASK,true));
  //快捷方式
  
  /*
  * jopen
  **/
  JMenuItem jopen=new JMenuItem("打开(O)");//jopen
  jopen.addActionListener(new File_open_actionAdapter(this));
  jopen.setMnemonic(´O´);
  jopen.setAccelerator(KeyStroke.getKeyStroke(´O´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jsave
  **/
  JMenuItem jsave=new JMenuItem("保存(S)");
  jsave.addActionListener(new File_save_actionAdapter(this));
  jsave.setMnemonic(´S´);
  jsave.setAccelerator(KeyStroke.getKeyStroke(´S´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jsave as
  **/
  JMenuItem jsaveas=new JMenuItem("另存为...");
  jsaveas.addActionListener(new File_saveas_actionAdapter(this));
  /*
  * jquite
  **/
  
  JMenuItem jquite=new JMenuItem("关闭(Q)");
  jquite.addActionListener(new File_quite_actionAdapter(this));
  jquite.setMnemonic(´Q´);
  
   jquite.setAccelerator(KeyStroke.getKeyStroke(´Q´,java.awt.Event.CTRL_MASK,true));
  
  //------------------------------------
  // jFile code of end
  //--------------------------------------
  
  /**
  * jEdit code
  */
  //jundo
  JMenuItem jundo=new JMenuItem("撤销(U)");
  jundo.addActionListener(new Edit_undo_actionAdapter(this));
  jundo.setMnemonic(´U´);
  jundo.setAccelerator(KeyStroke.getKeyStroke(´U´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jcut
  **/
  JMenuItem jcut=new JMenuItem("剪切(X)");
  jcut.addActionListener(new Edit_cut_actionAdapter(this));
  jcut.setMnemonic(´X´);
  jcut.setAccelerator(KeyStroke.getKeyStroke(´X´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jcopy
  **/
  JMenuItem jcopy=new JMenuItem("复制(C)");
  jcopy.addActionListener(new Edit_copy_actionAdapter(this));
  jcopy.setMnemonic(´C´);
  jcopy.setAccelerator(KeyStroke.getKeyStroke(´C´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jpaste
  **/
  JMenuItem jpaste=new JMenuItem("粘贴(V)");
  jpaste.addActionListener(new Edit_paste_actionAdapter(this));
  jpaste.setMnemonic(´V´);
  jpaste.setAccelerator(KeyStroke.getKeyStroke(´V´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jdelete
  **/
  JMenuItem jdelete=new JMenuItem("删除(D)");
  jdelete.addActionListener(new Edit_delete_actionAdapter(this));
  jdelete.setMnemonic(´D´);
  jdelete.setAccelerator(KeyStroke.getKeyStroke(´D´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jfind
  **/
  JMenuItem jfind=new JMenuItem("查找(F)");
  jfind.addActionListener(new Edit_find_actionAdapter(this));
  jfind.setMnemonic(´F´);
  jfind.setAccelerator(KeyStroke.getKeyStroke(´F´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jreplace
  **/
  JMenuItem jreplace=new JMenuItem("替换(R)");
  jreplace.addActionListener(new Edit_replace_actionAdapter(this));
  jreplace.setMnemonic(´R´);
  jreplace.setAccelerator(KeyStroke.getKeyStroke(´R´,java.awt.Event.CTRL_MASK,true));
  
  /*
  *jselectall
  **/
  JMenuItem jselectall=new JMenuItem("全选(A)");
  jselectall.addActionListener(new Edit_selectall_actionAdapter(this));
  jselectall.setMnemonic(´A´);
  jselectall.setAccelerator(KeyStroke.getKeyStroke(´A´,java.awt.Event.CTRL_MASK,true));
  
  /*
  * jdate
  **/
  JMenuItem jdate=new JMenuItem("日期/时间(T)");
  jdate.addActionListener(new Edit_timedate_actionAdapter(this));
  jdate.setMnemonic(´T´);
  jdate.setAccelerator(KeyStroke.getKeyStroke(´T´,java.awt.Event.CTRL_MASK,true));
  
  
  
  
  //------------------------------
  // jEdit code of end
  //
  //-----------------------------
  
  /*
  * jWord
  
   **/
  JMenuItem jword=new JMenuItem("自动换行");
  jword.addActionListener(new Format_word_actionAdapter(this));
  
  /*
  * jfont
  **/
  JMenuItem jfont=new JMenuItem("字体..");
  jfont.addActionListener(new Format_font_actionAdapter(this));
  
  /*
  * jcolor
  **/
  JMenuItem jcolor=new JMenuItem("颜色...");
  jcolor.addActionListener(new Format_color_actionAdapter(this));
  
  
  
  //--------------------------------------------------
  // jFormat code of end
  //--------------------------------------------------
  
  /*
  * jabout
  **/
  JMenuItem jabout=new JMenuItem("关于作者(A)");
  jabout.addActionListener(new Help_about_actionAdapter(this));
  jabout.setMnemonic(´A´);
  jabout.setAccelerator(KeyStroke.getKeyStroke(´A´,java.awt.Event.CTRL_MASK,true));
  
  //-------------------------------------------------
  // jHelp code of end
  //------------------------------------------------------
  
  /*************************************************
  *------------

来源:http://www.tulaoshi.com/n/20160219/1622709.html

延伸阅读
方形邮票自然地版面分区 比如左边贴了一张邮票后,就自动生成一块空白。当然也可以写满。我的用法是页面自动分成两栏,邮票右边就是主要的文字,左侧的空白则可以用来写一些小批注等,或者先不写也可以,因为我喜欢留出空白给以后回顾手帐的时候写东西。 一套邮票贴在一起 一套邮票一般是有整体性的,比如色彩、图案风格等等,...
用VB做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算讨论用手动方法制作记事本,旨在向VB初学者展示:学VB原来是如此容易! 通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用RichText控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。 第一章...
乐记事记事本怎么添加星标   乐记事记事本添加星标方法。在乐记事里面添加了记事,比较重要但是怕忘记了事情?没关系,可以给记事本添加星标,那么要怎么添加星标呢?现在小编就教大家乐记事记事本添加星标方法。 1)点击打开,点击打开要添加星标的日记; 2)点击右上角的,然后点击即可。
标签: Delphi
  当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。 很多报刊文章介绍了许多如何利用installshield等工具软件来制作安装程序的方法,这种办法可以很快建立起较常见的安装模式,但用这种办法也有一些...
标签: 浏览器
傲游浏览器记事本怎么用?   傲游浏览器记事本怎么用?新版的傲游浏览器新增在线记事本,有了在线记事本我们就可以方便记录自己每天的工作以及保存在工作中需要保存的重要文件了,下面我们来学下傲游在线笔记本用法。 傲游浏览器记事本怎么用 傲游在线笔记本用法 第一步:打开傲游浏览器,在浏览器的右上角的工具栏上找到向...

经验教程

694

收藏

16
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部