css - TextArea 不处理 MouseEvent.MOUSE_PRESSED

标签 css netbeans javafx javafx-2 scenebuilder

我正在构建一个 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 ;
}

关于css - TextArea 不处理 MouseEvent.MOUSE_PRESSED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22348152/

相关文章:

javascript - 我的 javascript 触发器无法在我的代码中使用 css 媒体查询

java - 重新导入 WSDL 以更新 Java Web 服务客户端

JavaFX FXML - 将选项添加到选择框

java - 如何在javafx中使用节点的宽度制作动画/过渡?

java - 向 JavaFX MediaPlayer.Status 添加更改监听器以及为什么 getStatus() 方法出现故障?

internet-explorer - 如何修复 border-radius 结合 box-shadow 的 IE 渲染?

javascript - 单击按钮时暂停 jQuery

java - JSlider 绘制不完整,与 Netbeans 配合使用

java - netbeans java代码审查插件

html - 布局/文本在实时站点中显得更大