当前位置: 首页 > 知识库问答 >
问题:

每行迭代GridPane节点-每行读取GridPane节点

范高刚
2023-03-14

我正在使用JavaFX8创建一个应用程序。我使用拖放动态更改网格窗格的内容。我希望迭代每行或每行/列的GridPane内容。JavaFX允许通过指定行和列在GridPane中添加节点。

gridPane.add(node, col, row);

我希望通过指定行和列,以相同的方式读取GridPane的节点
我想有一些类似于下面的源代码(下面的代码不正确),

for(int row = 0; row < gridPaneHeight; row++) {
    for(int col = 0; row < gridPaneWidth; col++) {
        Node node = gridPane.get(col, row);
    }
}

共有1个答案

方夜洛
2023-03-14

怎么样

int[][] gridPaneNodes = new int[gridPaneWidth][gridPaneHeight] ;
for (Node child : gridPane.getChildren()) {
    Integer column = GridPane.getColumnIndex(child);
    Integer row = GridPane.getRowIndex(child);
    if (column != null && row != null) {
        gridPaneNodes[column][row] = child ;
    }
}

(或者,当您将它们放在哪个单元格中时,您可以只跟踪它们的位置…)

那你就可以了

for (int row = 0; row < gridPaneHeight; row++) {
    for(int col = 0; row < gridPaneWidth; col++) {
        Node node = gridPaneNodes[column][row] ;
    }
}
 类似资料:
  • 我试图找出鼠标在哪里,就GridPane的列和行而言。我知道鼠标的位置,所以如果我知道每个单元格的宽度和高度(我认为这不是一个简单的方法来计算),我大概可以从中算出它,但是我看到的大多数代码似乎都假设鼠标在一个节点上GridPane内部: 但是实际上我的GridPane里面没有任何东西,所以我只得到整个GridPane。现在,我想我可以为每个单元添加节点,但这似乎效率低下。(这个想法是用户将节点放

  • 我有一个学校项目或类似的东西,我试图为用户制作一个注册面板。当用户点击注册时,这个面板会打开。它看起来像这样。 我想做的是禁用创建按钮,只有在对话框上有3个检查时才会启用。 我在对话框上使用GridPane,我在考虑返回这些单元格上的某些节点(检查是图像视图),并检查条件是否为真。然而,我不知道如何从GridPane返回节点。如果你有其他方法来解决这个问题,也没关系。 这是代码的相关部分。

  • 我正在制作一个基于虫子“感知”和吃食物的网格风格游戏/模拟。我正在使用标签的gridPane(称为)来显示虫子和食物的网格。当虫子将细胞移向食物等时,这显然会不断更新。 我目前有一个函数,我想用在cell Content中具有新文本的标签替换[row, ol]处的标签。 我有一个有效的方法 然而,我担心这仅仅是在当前标签上添加了一个标签,显然超过100次的模拟迭代并不理想。 在添加标签之前,我已经

  • 问题内容: 我有下面的代码: 有谁对我如何延迟循环中的每个循环的建议?假设代码在每次迭代完成后等待10秒。我试过了,但没有设法解决。 问题答案: 您可以设置超时时间,以增加代码间隔,如下所示: 因此,第一个立即运行(间隔* 0为0),第二个在十秒钟后运行,依此类推。 您需要在中作为最终参数发送,以便将其值绑定到function参数。否则,尝试访问数组值将超出范围,您将获得。

  • 我试图用JavaFX创建一个“可拖动”的直方图UI。我有一个滚动窗格,其中包含一个网格窗格,有一列和许多行。每行是一个包含标签的HBox。每10行,还有一个包含一行的HBox。 我试图通过设置onMousePressed、onMouseAdrag和onMouseCreleased事件处理程序(如下所示),使包含行的HBoxe可拖动。如果我将一条hbox线拖动并释放到它的起点之上,它就会工作-它最终

  • 问题内容: 我有一个如下所示的XML结构,但规模更大: 为此,我使用了以下代码: 但是,打印出来的作者文本为“无”。我尝试使用下面的变体来摆弄,但这会导致程序中断。 正确的输出应为: 但是我得到的是: 关于如何解决这个问题有什么建议吗? 问题答案: 您的类型为1(),通常您需要获取一个字符串。这会工作