首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TextArea不处理MouseEvent.MOUSE_PRESSED

TextArea不处理MouseEvent.MOUSE_PRESSED
EN

Stack Overflow用户
提问于 2014-03-12 10:11:35
回答 1查看 613关注 0票数 3

我正在构建一个JavaFX应用程序,并插入了一个TextArea

TextArea分配了一个CSS类(不知道是否重要):

代码语言:javascript
运行
复制
.default-cursor{
    -fx-background-color:#EEEEEE;
    -fx-cursor:default;
}

关于这个TextArea有两个问题

  1. -fx-cursor:default;没有任何效果,因为光标仍然是文本游标。这很奇怪,因为我对具有适当/预期结果的TextField使用相同的类
  2. TextArea不处理MOUSE_PRESSED事件。 我的代码是:

代码语言:javascript
运行
复制
    textArea.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                    System.out.println("print message");
                }
            });

知道为什么吗?

我想指出的是,当我更改EventHandler以处理MOUSE_CLICKED时,一切都很好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 11:57:08

我怀疑TextArea上鼠标事件的默认处理程序在鼠标按下事件到达处理程序之前正在消耗它。

相反,安装一个EventFilter:

代码语言:javascript
运行
复制
textArea.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                System.out.println("mouse pressed");
            }
        });

在默认处理程序看到事件之前,事件筛选器将被处理。

对于您的css问题,请尝试

代码语言:javascript
运行
复制
.default-cursor .content {
  -fx-cursor: default ;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22348152

复制
相关文章

相似问题

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