0
私はラベルのマトリックスをグリッドパネルに追加しています。私はイベント(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);
}