[英]how to mouse event entered and exited pane change color label java fxml controller
为MOUSE_PRESSED
, MOUSE_DRAGGED
和MOUSE_RELEASED
处理程序创建处理程序。 检查事件的位置是否在MOUSE_DRAGGED
的节点内。
例
@Override
public void start(Stage primaryStage) throws Exception {
Button button = new Button("Drag me");
final String style = "-fx-background-color: red;";
button.setOnMousePressed(evt -> {
if (evt.isPrimaryButtonDown()) {
button.setStyle(style);
}
});
button.setOnMouseDragged(evt -> {
if (evt.isPrimaryButtonDown()) {
button.setStyle(button.contains(evt.getX(), evt.getY()) ? style : null);
}
});
button.setOnMouseReleased(evt -> {
button.setStyle(null);
});
Scene scene = new Scene(new StackPane(button), 300, 300);
primaryStage.setScene(scene);
primaryStage.show();
}
顺便说一句:在大多数情况下,在事件处理程序中检查源是不好的做法,因为您只需为要比较事件的source
属性的节点注册事件处理程序,就可以轻松避免检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.