Как отметить выбранную ячейку GridPane с помощью CSS? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть GridPane, и я хочу, чтобы у меня была возможность выбрать плитку / ячейку одним щелчком мыши, и чтобы ее цвет менялся полупостоянно.Это означает, что после одного щелчка мышью цвет меняется с красного на синий и остается таким до тех пор, пока я не нажму другую плитку / ячейку.Затем предыдущая ячейка / ячейка снова приобретает красный цвет, а новая ячейка / ячейка приобретает синий цвет.

Есть ли способ сделать это с помощью css?Или по коду?Я попробовал команду «нажата», но все, что она делает - это быстрое изменение цвета.

.pane{
    -fx-background-color: red;
}

.pane:hover{
    -fx-background-color: green;
}

.pane: **pressed** { /*Not the result I wanted...*/
    -fx-background-color: blue;
}

1 Ответ

0 голосов
/ 23 сентября 2019

Этот кусок кода решил это для меня:

//Note 1: The name of my GridPane was "gPaneWeeklyEvents".
//Note 2: My GripPane was 6x6
private int prevColIndex;
private int prevRowIndex;
@Override
public void initialize(URL url, ResourceBundle rb) {
    gPaneWeeklyEvents.getChildren().forEach(item -> {
            item.setOnMouseClicked(new EventHandler<MouseEvent>() {
           @Override
           public void handle(MouseEvent event) {
               if (event.getClickCount() == 1) {
                   Node source = (Node) event.getSource();
                   Integer colIndex = GridPane.getColumnIndex(source);
                   Integer rowIndex = GridPane.getRowIndex(source);
                   if (rowIndex == null) {
                       rowIndex = 0;
                   }
                   if (colIndex == null) {
                       colIndex = 0;
                   }
                   if (rowIndex != prevRowIndex || colIndex != prevColIndex) {
                       gPaneWeeklyEvents.getChildren().get(rowIndex * 6 + colIndex).setStyle("-fx-background-color: blue;");
                       gPaneWeeklyEvents.getChildren().get(prevRowIndex * 6 + prevColIndex).setStyle("-fx-background-color: red");
                       prevRowIndex = rowIndex;
                       prevColIndex = colIndex;
                   }
               }
           }
       });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...