java - 在 JTextComponent 中禁用双击选择

标签 java swing double-click caret jtextcomponent

通常当您双击一个文本组件时,整个单词都会被选中。

我想禁用对这个单个词的选择,但仍保持单击和拖动以选择它的能力。

示例:“敏捷的棕色狐狸跳过懒惰的狗”

当我从“The”的开头单击并拖动到“dog”的结尾时,文本被选中。但是,当我双击“棕色”时,“棕色”未被选中,可以执行不同的操作。

有谁知道我怎样才能做到这一点?

最佳答案

其中edit是JTextComponent实例

DefaultCaret c=new DefaultCaret() {
    public void mouseClicked(MouseEvent e) {
        int nclicks = SwingUtilities2.getAdjustedClickCount(getComponent(), e);
        if (! e.isConsumed() &&
                SwingUtilities.isLeftMouseButton(e) &&
                nclicks == 2
                && SwingUtilities2.canEventAccessSystemClipboard(e)) {
            return;
        }

        super.mouseClicked(e);
    }
    public void mousePressed(MouseEvent e) {
        int nclicks = SwingUtilities2.getAdjustedClickCount(getComponent(), e);
        if (! e.isConsumed() &&
                SwingUtilities.isLeftMouseButton(e) &&
                nclicks == 2
                && SwingUtilities2.canEventAccessSystemClipboard(e)) {
            return;
        }
        super.mousePressed(e);
    }
};
c.setBlinkRate(edit.getCaret().getBlinkRate());
edit.setCaret(c);

关于java - 在 JTextComponent 中禁用双击选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9486631/

相关文章:

java - Android:如何创建空 Realm 对象?

java - 从 Apache POI 已弃用的方法创建工作表

java - (var) 无法解析为类型

java - 从 ArrayList 填充 jTable

java - 我已经创建了一个基本的 GUI,但按钮不会与文本字段交互

java - 如何保持一个线程调用多个JForm?

swift - 在 WKWebView 上禁用双击滚动

Android Studio - 如何在 Kotlin 中执行 doubleClick?

java - Xerces (JAXP) 尝试访问互联网资源

java - 双击 jtable 的错误行为