繁体   English   中英

如何在进入和退出窗格的鼠标事件上更改颜色标签java fxml控制器

[英]how to mouse event entered and exited pane change color label java fxml controller

我想在按下鼠标时更改标签“ Kategori”的颜色,然后在“ paneKategori”上退出(看图片)。 我在fxml控制器中的代码

    @FXML
void btnProdukMouseEntered(javafx.scene.input.MouseEvent event) {
    if ( event.getSource() == paneKategori) {
        labelKategori.setStyle("-fx-background-color: #FF0000;");
    }

}

那对我没有用。

这是我在场景构建器中的GUI。 GUI

MOUSE_PRESSEDMOUSE_DRAGGEDMOUSE_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM