我正在尝试在JavaFX中创建一个刽子手。我在网格窗格中有26个文本节点,但我不想为每个节点创建一个方法,因此我想创建一个方法来处理您单击的文本节点。我无法弄清楚如何做到这一点。有什么帮助吗?
答案 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);
}
(如果你出于某种原因确实需要行和列,你可以同样轻松地使你的方法获取这些值并从处理程序传递它们。)