首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JTextComponent中禁用双击选择

在JTextComponent中禁用双击选择
EN

Stack Overflow用户
提问于 2012-02-29 01:20:21
回答 5查看 993关注 0票数 1

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

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

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

当我从" the“的开头单击并拖动到"dog”的结尾时,文本被选中。但是,当我双击"brown“时,"brown”没有被选中,并且可以执行不同的操作。

有人知道我是如何做到这一点的吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-29 14:05:27

其中edit是JTextComponent实例

代码语言:javascript
运行
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2012-02-29 01:23:53

我想你可以注册你自己的MouseListenerMouseAdapter,并检查MouseEvent的点击量(即getClickCount())。如果它等于2,则接受事件,否则将事件处理委托给超类(例如super.mouseClicked(...))。

票数 2
EN

Stack Overflow用户

发布于 2014-11-01 01:32:57

另一种方法是将selectWord操作替换为不执行任何操作的操作:

代码语言:javascript
运行
复制
    textComponent.getActionMap().put(DefaultEditorKit.selectWordAction, 
            new TextAction(DefaultEditorKit.selectWordAction) {
                public void actionPerformed(ActionEvent e) {
                    // DO NOTHING
                }
            });

如果您对单词的定义不同于默认的Swing定义,您还可以使用此技术来更改selectWord操作的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9486631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档