这个学期,我们学习了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´);
上一篇:用javap 反汇编帮你理解java特性
下一篇:用Java编写的记事本程序(2)
|