TextArea does not handle MouseEvent.MOUSE_PRESSED



我正在构建一个JavaFX应用程序,我有一个TextArea插入。
TextArea有一个CSS类分配(不知道是否重要):

.default-cursor{
    -fx-background-color:#EEEEEE;
    -fx-cursor:default;
}

关于TextArea有两个问题:

  1. -fx-cursor:default;没有作用,光标仍然是文本光标。这是奇怪的,因为我使用相同的类TextField与适当/预期的结果
  2. TextArea不处理MOUSE_PRESSED事件
    我的代码是:
    textArea.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                    System.out.println("print message");
                }
            });

知道为什么吗?
我想注意的是,当我改变EventHandler处理MOUSE_CLICKED一切都很好

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

安装一个EventFilter:

textArea.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                System.out.println("mouse pressed");
            }
        });

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

对于你的css问题,试试

.default-cursor .content {
  -fx-cursor: default ;
}

相关内容

  • 没有找到相关文章

最新更新