java - 如何在 JTextPane 中删除选定的文本? (java)

标签 java swing jtextpane strikethrough

标题说明了一切。假设我有一个带有“删除选定文本”选项的右键菜单。当我在 jtextpane 中选择一些文本时,右键单击 --> "删除选定的文本",选定的文本将被删除。

有什么想法吗?

最佳答案

Swing 文本组件使用 Actions 提供文本 Pane 的各种格式设置功能。<​​/p>

以下是 StyledEditorKitUnderlineAction 的代码。

public static class UnderlineAction extends StyledTextAction {

    /**
     * Constructs a new UnderlineAction.
     */
    public UnderlineAction() {
        super("font-underline");
    }

    /**
     * Toggles the Underline attribute.
     *
     * @param e the action event
     */
    public void actionPerformed(ActionEvent e) {
        JEditorPane editor = getEditor(e);
        if (editor != null) {
            StyledEditorKit kit = getStyledEditorKit(editor);
            MutableAttributeSet attr = kit.getInputAttributes();
            boolean underline = (StyleConstants.isUnderline(attr)) ? false : true;
            SimpleAttributeSet sas = new SimpleAttributeSet();
            StyleConstants.setUnderline(sas, underline);
            setCharacterAttributes(editor, sas, false);
        }
    }
}

所以基本上,您需要通过替换“下划线”StyleConstants 方法来使用“删除线”StyleConstants 方法来创建自己的“StrikeThroughAction”。

创建操作后,您可以通过使用该操作创建 JMenuItem 或 JButton 来使用该操作。单击该组件时,删除线属性将添加到所选文本中。

关于java - 如何在 JTextPane 中删除选定的文本? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419238/

相关文章:

java - 如何为我的前缀匹配器算法找到更好的算法

java - 如何使用java中的Scanner类将两个或更多单词存储在一个字符串变量中,然后将下一个输入存储在另一个字符串变量中?

java - CMake 和 make 在错误的地方寻找 libjawt.so 文件

java - 带有 JOptionPane 的 ImageIcon 未出现在可执行 JAR 中

java - Java Swing 中具有换行和换行功能的面板

java - Spring Maven项目结构pom.xml

java - Java Applet 中的元素对齐

java - 如何使用 RTFEditorKit 读取纯文本文件?

java - 我应该如何在我的 Java 程序中显示我的代码?

java - java中的子菜单问题