我正在构建一个JavaFX
应用程序,我有一个TextArea
插入。TextArea
有一个CSS
类分配(不知道是否重要):
.default-cursor{
-fx-background-color:#EEEEEE;
-fx-cursor:default;
}
关于TextArea
有两个问题:
-
-fx-cursor:default;
没有作用,光标仍然是文本光标。这是奇怪的,因为我使用相同的类TextField
与适当/预期的结果 - 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 ;
}