📄 styledpad.java
字号:
package myprojects_SpellChecker;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.undo.*;
import javax.swing.event.*;
import javax.swing.*;
class StyledPad extends JPanel{
protected JTextPane editor;
private JFrame mainFrame;
protected UndoManager undo = new UndoManager();
protected UndoableEditListener undoHandler = new UndoHandler();
public StyledPad(JFrame mainFrame) {
this.mainFrame=mainFrame;
editor=createEditor();
editor.getDocument().addUndoableEditListener(undoHandler);
}
private JTextPane createEditor() {
StyleContext sc = new StyleContext();
DefaultStyledDocument doc = new DefaultStyledDocument(sc);
JTextPane textpane = new JTextPane(doc);
textpane.setDragEnabled(true); //设置文本可以拖放
textpane.getCaret().setBlinkRate(500);//0-stop
return textpane;
}
protected JTextPane getEditor() {
return editor;
}
class UndoAction extends AbstractAction {
public UndoAction() {
super("Undo");
setEnabled(false);
}
public void actionPerformed(ActionEvent e) {
if(undo.canUndo()) {
undo.undo();
}
update();
redoAction.update();
}
protected void update() {
if(undo.canUndo()) {
setEnabled(true);
putValue(Action.NAME, undo.getUndoPresentationName());
}
else {
setEnabled(false);
putValue(Action.NAME, "Undo");
}
}
}
class RedoAction extends AbstractAction {
public RedoAction() {
super("Redo");
setEnabled(false);
}
public void actionPerformed(ActionEvent e) {
if(undo.canRedo()) {
undo.redo();
}
update();
undoAction.update();
}
protected void update() {
if(undo.canRedo()) {
setEnabled(true);
putValue(Action.NAME, undo.getRedoPresentationName());
}
else {
setEnabled(false);
putValue(Action.NAME, "Redo");
}
}
}
protected UndoAction undoAction = new UndoAction();
protected RedoAction redoAction = new RedoAction();
class UndoHandler implements UndoableEditListener {
public void undoableEditHappened(UndoableEditEvent e) {
undo.addEdit(e.getEdit());
undoAction.update();
redoAction.update();
}
}
protected void resetUndoManager() {
undo.discardAllEdits();
undoAction.update();
redoAction.update();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -