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

📄 e1002. creating a custom editing command for a jtextcomponent.txt

📁 这里面包含了一百多个JAVA源文件
💻 TXT
字号:
This example demonstrates how to implement an editing command. There are two steps when creating a custom command. The first is to create an action object that executes the desired functionality and then installs the action object in the component. The second is to bind a keystroke to the action object using an inputmap. 
Text component actions should extend from TextAction. TextAction has a convenience method for finding the appropriate text component on which to operate. 

This example implements a Lowercase command that converts characters to lowercase. If the selection is empty, the command converts the character following the caret and then moves the caret forward one space. If the selection is not empty, the command converts the characters in the selection. 

    JTextArea comp = new JTextArea();
    
    // Bind F2 to the lowercase action
    String actionName = "Lowercase";
    comp.getInputMap().put(KeyStroke.getKeyStroke("F2"), actionName);
    
    // Install the action
    comp.getActionMap().put(actionName,
        new TextAction(actionName) {
            public void actionPerformed(ActionEvent evt) {
                lowercaseSelection(getTextComponent(evt));
            }
        }
    );
    
    public static void lowercaseSelection(JTextComponent comp) {
        if (comp.getSelectionStart() == comp.getSelectionEnd()) {
            // There is no selection, only a caret
            if (comp.getCaretPosition() < comp.getDocument().getLength()) {
                // The caret must be at least one position left of the end
                try {
                    int pos = comp.getCaretPosition();
                    Document doc = comp.getDocument();
                    String str = doc.getText(pos, 1).toLowerCase();
    
                    doc.remove(pos, 1);
                    doc.insertString(pos, str, null);
                    comp.moveCaretPosition(pos+1);
                } catch (BadLocationException e) {
                }
            }
        } else {
            // There is a selection
            int s = comp.getSelectionStart();
            int e = comp.getSelectionEnd();
    
            comp.replaceSelection(comp.getSelectedText().toLowerCase());
            comp.select(s, e);
        }
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -