【发布时间】:2017-01-31 00:23:21
【问题描述】:
我有一个标签矩阵,我将其添加到 GridPane。我已经为矩阵中的每个标签添加了一个事件(setOnMouseClicked)来选择或取消选择相同的标签,因此每次按下鼠标时,都会选择或取消选择一种颜色的标签(单独)。但是现在我想像在Excel中一样选择多个标签:短按鼠标选择多个单元格。不必单击标签,然后单击下一个,下一个,下一个,等等...(非常慢)。
我认为它是 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);
}
【问题讨论】:
标签: java javafx mouseevent