在javaFX和Rectangle流程中访问GridPane中的节点

时间:2017-10-04 01:29:01

标签: javafx gridpane

我正在使用javaFX开发一个简单的LiteBrite游戏。使用颜色选择器,用户在GridPane上选择颜色和时钟,GridPane是矩形的集合。每次单击都会将该Rectangle的颜色更改为用户选择的颜色。但是,如果已经更改了矩形的颜色,我应该将颜色更改回原始颜色(黑色)。 我无法访问Node并将其转换为Rectangle(以检查颜色)。 这是我用来获取节点的方法:

private Node getNode(GridPane grid, int column, int row){
      Node result = null; 
      for (Node node : grid.getChildren()) {
           if (GridPane.getColumnIndex(node) == column 
                   && GridPane.getRowIndex(node) == row) {
                result = node;
            }
      }
      return result;
}

在start方法中,我调用上面的方法并保存节点:

      Node node = getNode(grid,i,j);

此时,如果我尝试打印出节点,我没有问题。但是,在我将Node转换为Rectangle并尝试检查其颜色后,我得到一个NULLPointerException:

       Rectangle rec = (Rectangle) node;
       System.out.println(rec.getFill());

我做错了什么?任何帮助是极大的赞赏。提前谢谢。

0 个答案:

没有答案