как мышка событие, вход и выход из панели изменить цвет метки java fxml controller - PullRequest
0 голосов
/ 10 января 2019

Я хочу изменить цвет моего ярлыка "Kategori" при нажатии мыши и выйти на "paneKategori" (Посмотрите на картинку). мой код в контроллере fxml

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

}

это не работает для меня.

это мой графический интерфейс в конструкторе сцены. GUI

1 Ответ

0 голосов
/ 10 января 2019

Создание обработчиков для обработчиков 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 события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...