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

时间:2019-01-10 06:38:18

标签: java javafx

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

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

}

那对我没有用。

这是我在场景生成器中的GUI。 GUI

1 个答案:

答案 0 :(得分:0)

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();
}

BTW:在大多数情况下,在事件处理程序中检查源是不正确的做法,因为您只需为要比较事件的source属性的节点注册事件处理程序,就可以轻松避免检查