⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 styledpad.java

📁 文本编辑分析大师
💻 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 + -