服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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


  这个学期,我们学习了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
//------------------------------------------------------

/*************************************************
*------------

扫描关注微信公众号