У меня есть матрица меток, которую я добавляю в GridPane. Я добавил событие (setOnMouseClicked) на каждую метку в матрице, чтобы выбрать или отменить выбор одного и того же ярлыка, поэтому каждый раз, когда я нажимаю на мышь, метка цвета (индивидуально) выбирается или отменяется. Но теперь я хочу выбрать несколько ярлыков, как в Excel: выберите несколько ячеек, нажимая мышь на короткое время. Не нужно нажимать на ярлык, а затем на следующий, следующий и следующий и т. Д. (Это очень медленно).Выбор и отмена выбора элементов отдельно или вместе в JavaFX
Я думал, что это комбинация MouseEntered и MouseClicked, но я не знаю, как или не знаю, есть ли более простой способ. Вот мой код для выбора этикетки по одному:
for (int i = 0; i < matrix.length; i++)
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = new Label();
matrix[i][j].setAccessibleHelp(i+","+j);
matrix[i][j].getStyleClass().add("classic-label");
matrix[i][j].setStyle("-fx-background-color: "+colorDeath+";");
matrix[i][j].setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
String[] coords = ((Label)event.getSource()).getAccessibleHelp().split(",");
//Function that defines the color. I have no problem in this part
int x = defineColor(coords);
((Label)event.getSource()).setStyle("-fx-background-color: "+((x == 1) ? colorLife : colorDeath)+";");
}
});
gridPaneMatrix.add(matrix[i][j], i, j);
}