java - 如何鼠标事件进入和退出窗格更改颜色标签java fxml控制器
问题描述
当鼠标按下并退出“paneKategori”时,我想更改标签“Kategori”的颜色(看图片)。我在 fxml 控制器中的代码
@FXML
void btnProdukMouseEntered(javafx.scene.input.MouseEvent event) {
if ( event.getSource() == paneKategori) {
labelKategori.setStyle("-fx-background-color: #FF0000;");
}
}
这对我不起作用。
解决方案
为 和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
事件属性的节点注册事件处理程序来轻松避免检查。
推荐阅读
- identityserver4 - 如何撤销 Identityserver4 中的刷新令牌?
- flutter - 使用 Flutter 将语义添加到每个页面上的第一个小部件
- python - 如何在 Keras 中重新训练权重
- testing - 在 Kubernetes 堆栈上运行集成/e2e 测试
- reactjs - 是否可以将 MaterialUI 与 React 和 css 模块一起使用并访问 css 模块文件中的主题?
- python - 使用熊猫将具有最接近数字的两个数据框合并到一行中?
- sql - 登录员工总数
- c - 这两种说法有什么区别?
- codeigniter-3 - 如何在ci中的like查询中使用conact
- android - 在我的 android API 调用中使用 volley 获取 com.android.volley.ClientError