【问题标题】:Deselect selected text in JTextPane取消选择 JTextPane 中的选定文本
【发布时间】:2025-12-30 22:00:11
【问题描述】:

我有一个编辑器,我想在其中检查所选文本是否不包含某些单词。如果它包含那些特定的单词,那么我需要取消选择用户所做的选择。 JTextPane有什么办法吗?

【问题讨论】:

    标签: java swing jtextpane


    【解决方案1】:

    我不确定,但试试这个方法。

    textPane.setCaretPosition(start);
    

    【讨论】:

      【解决方案2】:
      int end = pane.getSelectionEnd();
      pane.setSelectionStart(end);
      pane.setSelectionEnd(end);
      

      这将取消选择选定的文本并将插入符号留在用户选择的任何内容的末尾。弹出一个JOptionPane 告诉用户为什么选择消失可能会有所帮助。

      JOptionPane.showMessageDialog(
          null, 
          "Don't select swear words!", 
          "Net Nanny says..", 
          JOptionPane.ERROR_MESSAGE);
      

      【讨论】:

        【解决方案3】:

        文本选择是临时且连续的。您不能在较大的选定文本字符串中间取消选择某些文本。

        也许您在谈论突出显示。查看 getHighlighter() 的 API。您可以添加/删除高光并指定每个高光的开始/结束偏移量。

        【讨论】:

        • 或者只是 jtextpane.setSelectionStart(0);和 jtextpane.setSelectionEnd(0);它会“清除”选择。