我正在制作一个基于错误“感知”和吃食物的网格式游戏/模拟。我正在使用 gridPane (称为worldGrid
)标签来显示虫子和食物的网格。当错误将细胞移向食物等时,这显然会不断更新。
我目前有一个功能updateGrid(int col, int row, String cellContent)
我想将 [row,col] 处的标签替换为在 cellContent 中包含新文本的标签。
我有以下有效的方法
worldGrid.add(new Label(cellContent), row,col);
然而我担心这只是在当前标签之上添加一个标签,显然超过 100 次的模拟迭代并不理想。
在添加标签之前我已经尝试过:
worldGrid.getChildren().remove(row,col);
不过我然后得到了IllegalArgumentException
当尝试做add
line.
关于如何做到这一点有什么想法吗?或者更好的是,关于如何最好地显示不断变化的网格(最终将使用精灵而不是文本)有什么想法吗?
grid.add(node, col, row) 提供的 col/row (注意首先是 col!)只是一个布局约束。这不提供任何像二维数组中的槽那样访问列或行的方法。因此,要替换节点,您必须知道其对象本身,例如将它们记在一个单独的数组中。
然后您可以调用 getChildren().remove(object)...例如:
GridPane grid = new GridPane();
Label first = new Label("first");
Label second = new Label("second");
grid.add(first, 1, 1);
grid.add(second, 2, 2);
second.setOnMouseClicked(e -> {
grid.getChildren().remove(second);
grid.add(new Label("last"), 2, 2);
});
box.getChildren().addAll(grid);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)