我想在按下鼠标并退出“ paneKategori”(查看图片)时更改标签“ Kategori”的颜色。 我在fxml控制器中的代码
@FXML
void btnProdukMouseEntered(javafx.scene.input.MouseEvent event) {
if ( event.getSource() == paneKategori) {
labelKategori.setStyle("-fx-background-color: #FF0000;");
}
}
那对我没有用。
答案 0 :(得分:0)
为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();
}
BTW:在大多数情况下,在事件处理程序中检查源是不正确的做法,因为您只需为要比较事件的source
属性的节点注册事件处理程序,就可以轻松避免检查