JavaFX从GridPane获取行和列

时间:2017-08-10 01:01:26

标签: javafx

我正在尝试在JavaFX中创建一个刽子手。我在网格窗格中有26个文本节点,但我不想为每个节点创建一个方法,因此我想创建一个方法来处理您单击的文本节点。我无法弄清楚如何做到这一点。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

创建一个方法,该方法采用String参数表示发生点击的文本:

private GridPane grid ;
private int numColumns ;

private void processClick(String text) {
    // ...
}

然后从每个处理程序中调用它,例如:

for (char c = 'A' ; c <= 'Z' ; c++) {
    String s = Character.toString(c);
    Text text = new Text(s);
    text.setOnMouseClicked(e -> processClick(s));
    grid.add(text, (c-'A') % numColumns, (c-'A') / numColumns);
}

(如果你出于某种原因确实需要行和列,你可以同样轻松地使你的方法获取这些值并从处理程序传递它们。)