由于百度经验字数的限制我将全部的代码分为几部分,你可以把每个部分的代码黏到一块直接运行。
import java.util.*;
import javax.swing.*;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.text.BadLocationException;
import javax.swing.undo.*;
public class ofMyNotePad extends JFrame implements ActionListener,WindowListener,DocumentListener
{
JButton jb1,jb2,jb3,jb4,jb5;
JToolBar jtb;
JScrollPane jsp;
JTextArea jta;
JMenu file,editor,format,watch,help;
JMenuBar jmb;
JMenuItem creat,open,save,saveas,print,exit;
JMenuItem undo,cut,copy,paste,delete,find,findnext,replace,clip,selectall,time;
JMenuItem font;
JCheckBoxMenuItem auto,state;
JMenuItem watchhelp,about;
JLabel helpJLabel,timeJLabel,lineJLabel;
JToolBar stateJToolBar;
//创建鼠标右键单击菜单
JPopupMenu popupMenu;
JMenuItem popupMenu_Undo,popupMenu_Cut,popupMenu_Copy,popupMenu_Delete,popupMenu_Paste,popupMenu_SelectAll;
//---------------创建撤消操作管理器
protected UndoManager isundo=new UndoManager();
protected UndoableEditListener undoHandler=new UndoHandler();
Toolkit toolKit=Toolkit.getDefaultToolkit();
//获取默认工具包。
Clipboard clipBoard=toolKit.getSystemClipboard();
//获取系统 Clipboard 的一个实例,
//该 Clipboard 可作为本机平台提供的剪贴板工具的接口。
window wd=new window(this);
String OldValue;
public ofMyNotePad()
{
super("新建文本文档"+"-记事本");
jta=new JTextArea();
jta.getDocument().addUndoableEditListener(undoHandler);
// 添加负责通知任何更改的撤消侦听器
jta.getDocument().addDocumentListener(this);
// 添加负责通知任何更改的文档侦听器
jsp=new JScrollPane(jta);
jmb=new JMenuBar();
jtb=new JToolBar();
//创建一级菜单并添加标记符
file=new JMenu("文件(F)",true);
file.setMnemonic('F');
editor=new JMenu("编辑(E)",true);
editor.addMenuListener(new MenuListener() {
public void menuSelected(MenuEvent e){CheckItemChange();}
public void menuDeselected(MenuEvent e) {}
public void menuCanceled(MenuEvent e) {}});
editor.setMnemonic('E');
format=new JMenu("格式(O)",true);
format.setMnemonic('O');
watch=new JMenu("查看(V)",true);
watch.setMnemonic('V');
help=new JMenu("帮助(H)",true);
help.setMnemonic('H');
//创建二级菜单并添加快捷方式和监听
//创建file菜单
creat=new JMenuItem("新建(N)");
creat.setMnemonic('N');
creat.addActionListener(this);
creat.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK,false));
open=new JMenuItem("打开(O)...");
open.setMnemonic('O');
open.addActionListener(this);
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK,false));
save=new JMenuItem("保存(S)");
save.setMnemonic('S');
save.addActionListener(this);
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK,false));
saveas=new JMenuItem("另存为(A)...");
saveas.setMnemonic('A');
saveas.addActionListener(this);
print=new JMenuItem("打印(P)");
print.setMnemonic('P');
print.addActionListener(this);
print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK,false));
exit=new JMenuItem("退出(X)");
exit.setMnemonic('X');
exit.addActionListener(this);
//创建editor菜单
undo=new JMenuItem("撤销(U)");
undo.setMnemonic('Z');
undo.addActionListener(this);
//undo.setEnabled(false);
undo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK,false));
cut=new JMenuItem("剪切(T)");
cut.addActionListener(this);
// cut.setEnabled(false);
cut.setMnemonic('X');
cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK,false));
copy=new JMenuItem("复制(C)");
copy.addActionListener(this);
copy.setMnemonic('C');
//copy.setEnabled(false);
copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK,false));
paste=new JMenuItem("黏贴(P)");
paste.addActionListener(this);
paste.setMnemonic('V');
paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK,false));
delete=new JMenuItem("删除(L)");
delete.addActionListener(this);
delete.setMnemonic('L');
//delete.setEnabled(false);
delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0,false));
find=new JMenuItem("查找(F)...");
find.addActionListener(this);
find.setMnemonic('F');
find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK,false));
findnext=new JMenuItem("查找下一个(N)");
findnext.setMnemonic('N');
findnext.addActionListener(this);
findnext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0,false));
replace=new JMenuItem("替换(R)...");
replace.setMnemonic('H');
replace.addActionListener(this);
replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK,false));
clip=new JMenuItem("转到(G)...");
clip.setMnemonic('G');
clip.addActionListener(this);
clip.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK,false));
selectall=new JMenuItem("全选(A)");
selectall.setMnemonic('A');
selectall.addActionListener(this);
selectall.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK,false));
time=new JMenuItem("时间/日期(D)");
time.setMnemonic('D');
time.addActionListener(this);
time.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0,false));
//创建format菜单
auto=new JCheckBoxMenuItem("自动换行(W)");
auto.setState(false);
auto.setMnemonic('W');
auto.addActionListener(this);
auto.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e)
{
// TODO Auto-generated method stub
if(auto.isSelected())
{
jta.setLineWrap(true);
}else
{
jta.setLineWrap(false);
}
}
});
font=new JMenuItem("字体(F)...");
font.setMnemonic('F');
font.addActionListener(this);
//创建watch菜单
state=new JCheckBoxMenuItem("状态(S)");
state.setState(false);
state.setMnemonic('S');
state.addActionListener(this);
//创建help菜单
watchhelp=new JMenuItem("查看帮助(H)");
watchhelp.setMnemonic('H');
watchhelp.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0,false));
watchhelp.addActionListener(this);
about=new JMenuItem("关于记事本(A)...");
about.setMnemonic('A');
about.addActionListener(this);
//创建右键单击菜单
//-------------------创建右键弹出菜单
popupMenu=new JPopupMenu();
popupMenu_Undo=new JMenuItem("撤消(U)", 'U');
popupMenu_Cut=new JMenuItem("剪切(T)", 'T');
popupMenu_Copy=new JMenuItem("复制(C)", 'C');
popupMenu_Paste=new JMenuItem("粘贴(P)", 'P');
popupMenu_Delete=new JMenuItem("删除(D)", 'D');
popupMenu_SelectAll=new JMenuItem("全选(A)", 'A');
// 撤消选项初始设为不可用
popupMenu_Undo.setEnabled(false);
//向右键菜单添加菜单项和分隔符
popupMenu.add(popupMenu_Undo);
popupMenu.addSeparator();
popupMenu.add(popupMenu_Cut);
popupMenu.add(popupMenu_Copy);
popupMenu.add(popupMenu_Paste);
popupMenu.add(popupMenu_Delete);
popupMenu.addSeparator();
popupMenu.add(popupMenu_SelectAll);
//右键菜单注册事件
popupMenu_Undo.addActionListener(this);
popupMenu_Cut.addActionListener(this);
popupMenu_Copy.addActionListener(this);
popupMenu_Paste.addActionListener(this);
popupMenu_Delete.addActionListener(this);
popupMenu_SelectAll.addActionListener(this);

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
