📄 ctbeditframe.java
字号:
//package swjtu.ctb;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
public class CTBEditFrame extends JFrame {
JPanel panelMain = new JPanel();
Document document = null;
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
EditController controller;
//------ 定义菜单变量 ------//
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("文件(F)");
JMenu menuEdit = new JMenu("编辑(E)");
JMenu menuFormat = new JMenu("格式(O)");
JMenu menuHelp = new JMenu("帮助(H)");
JMenuItem itemNew = new JMenuItem("新建(N)",'N');
JMenuItem itemOpen = new JMenuItem("打开(O)",'O');
JMenuItem itemSave = new JMenuItem("保存(S)",'S');
JMenuItem itemSaveAs = new JMenuItem("另存为(A)",'A');
JMenuItem itemExit = new JMenuItem("退出(X)",'X');
JMenuItem itemUndo = new JMenuItem("撤消(U)",'U');
JMenuItem itemRedo = new JMenuItem("重做(B)",'B');
JMenuItem itemCut = new JMenuItem("剪切(T)",'T');
JMenuItem itemCopy = new JMenuItem("复制(C)",'C');
JMenuItem itemPaste = new JMenuItem("粘贴(P)",'P');
JMenuItem itemFont = new JMenuItem("字体");
JMenuItem itemBackground = new JMenuItem("背景");
JMenuItem itemLine = new JMenuItem("自动换行(W)",'W');
JMenuItem itemFind = new JMenuItem("查找(F)",'F');
JMenuItem itemReplace = new JMenuItem("替换(R)",'R');
JMenuItem itemSelectAll = new JMenuItem("全选(A)",'A');
JMenuItem itemAbout = new JMenuItem("关于");
//---------------------------------------//
public CTBEditFrame() {
super("无标题");
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setJMenuBar(menuBar);
panelMain = (JPanel)this.getContentPane();
panelMain.add(scrollPane);
document = (Document)textArea.getDocument();
// 默认为不换行
textArea.setLineWrap(false);
textArea.setWrapStyleWord(true);
//-- 设置菜单 --//
itemUndo.setEnabled(false);
itemRedo.setEnabled(false);
menuBar.add(menuFile);
menuBar.add(menuEdit);
menuBar.add(menuFormat);
menuBar.add(menuHelp);
menuFile.add(itemNew);
menuFile.add(itemOpen);
menuFile.add(itemSave);
menuFile.add(itemSaveAs);
menuFile.addSeparator();
menuFile.add(itemExit);
menuEdit.add(itemUndo);
menuEdit.add(itemRedo);
menuEdit.addSeparator();
menuEdit.add(itemCut);
menuEdit.add(itemCopy);
menuEdit.add(itemPaste);
menuEdit.addSeparator();
menuEdit.add(itemFind);
menuEdit.add(itemReplace);
menuEdit.addSeparator();
menuEdit.add(itemSelectAll);
menuFormat.add(itemLine);
menuFormat.addSeparator();
menuFormat.add(itemFont);
menuFormat.add(itemBackground);
menuHelp.add(itemAbout);
//----------------------------//
//--增加菜单的快捷键和图标--//
menuFile.setMnemonic('F');
menuEdit.setMnemonic('E');
menuFormat.setMnemonic('O');
menuHelp.setMnemonic('H');
itemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
itemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
itemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
itemUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
itemRedo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
itemCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
itemCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
itemPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
itemFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
itemReplace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
itemAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
itemCut.setIcon( new ImageIcon("img/cut.gif"));
itemCopy.setIcon( new ImageIcon("img/copy.gif"));
itemPaste.setIcon( new ImageIcon("img/paste.gif"));
itemSave.setIcon( new ImageIcon("img/save.gif"));
itemUndo.setIcon( new ImageIcon("img/undo.gif"));
itemRedo.setIcon( new ImageIcon("img/redo.gif"));
//-- 增加菜单的侦听者 --//
controller = new EditController(this);
itemNew.addActionListener(controller);
itemOpen.addActionListener(controller);
itemSave.addActionListener(controller);
itemSaveAs.addActionListener(controller);
itemExit.addActionListener(controller);
itemUndo.addActionListener(controller);
itemRedo.addActionListener(controller);
itemCut.addActionListener(controller);
itemCopy.addActionListener(controller);
itemPaste.addActionListener(controller);
itemFont.addActionListener(controller);
itemBackground.addActionListener(controller);
itemFind.addActionListener(controller);
itemReplace.addActionListener(controller);
itemLine.addActionListener(controller);
itemAbout.addActionListener(controller);
itemSelectAll.addActionListener(controller);
//--------------------------//
document.addDocumentListener(controller);
document.addUndoableEditListener(controller);
this.addWindowListener(controller);
this.pack();
} // end create method
} // end class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -