2017-02-16 11 views
0

Итак, как сказано выше, у меня есть gridpane в моем приложении javafx, и я пытаюсь получить его так, что, когда я нажимаю на отдельную ячейку, ячейка, над которой находится мышь, изменит цвет на желтый (думаю превосходит kinda предмет). Я понятия не имею, как это сделать, а затем сбросить его после того, как мышь покинет камеру.Выделите ячейку Gridpane на Mouseover JavaFX

officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> { 
     officeHoursGridPane.setStyle("-fx-background- color:#FFFF00;"); 
    }); 

    officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> { 
     officeHoursGridPane.setStyle("-fx-background-color:#dae7f3;"); 
    }); 

Это, как я его прямо сейчас, но она просто меняет один цвет при наведении курсора мыши, а затем остается этот цвет. Вся таблица также изменяет не каждую ячейку. Кто-нибудь поможет?

+0

Почему у вас есть два абсолютно противоречивых обработчика для одного и того же события на одном и том же узле? Что вы ожидаете от этого? Я рекомендую вам прочитать некоторые страницы [help] (http://stackoverflow.com/help/asking) при задании вопросов, особенно [этот] (http://stackoverflow.com/help/on-topic) "* «Вопросы, требующие помощи по отладке (« почему этот код не работает? ») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе.» *. –

ответ

1

Если вы установили класс стиля на панели сетки:

officeHoursGridPane.getStyleClass().add("office-hours-pane"); 

, то вы можете использовать CSS, чтобы применить стили к немедленным детям панели сетки, и использовать встроенный в hover pseudoclass применять только их, когда узел завис. Добавьте следующий код внешнего файл CSS:

.office-hours-pane > *:hover { 
    -fx-background-color: #FFFF00; 
} 

Если вы предпочитаете использовать слушатель (что гораздо сложнее, а не хорошая практика, как вы должны действительно отделить стиль в отдельный объект, например, CSS), то вы будет устанавливать onMouseEntered и onMouseExited слушателей на каждом из дочерних узлов сетки (а не на самой панели сетки).

+0

Я действительно нахожу поиск этот ответ, в конце концов, я сам на днях! –

+0

У чего у меня проблемы с сейчас, получается, что столбец ячейки im highlighing также меняет цвет. –