2013-12-18 9 views
12

Gridpane内の特定のセルの内容を取得します。私はボタンをセルに入れましたjavafx GridPaneは特定のセルの内容を取得します

setConstraints(btt , 0 ,1) 

setConstraints(btt , 0 ,2) 

getChildren().add.... 

私の場合、GridPane.getChildren.get(10)は良くありません。私は細胞に直接行き(4,2)、内容を入手したい。

+0

はyoueが –

答えて

19

まあ、私は、列と行のインデックスであることにより、gridpaneから特定のノードを取得するための解決策がない場合、私は

private Node getNodeFromGridPane(GridPane gridPane, int col, int row) { 
    for (Node node : gridPane.getChildren()) { 
     if (GridPane.getColumnIndex(node) == col && GridPane.getRowIndex(node) == row) { 
      return node; 
     } 
    } 
    return null; 
} 
2

あなたはiは8×8 girdPaneを持っていると仮定すると、それを行うための機能を持っていると思います行とjは列ですが、あなたが書くことができます。

myGridPane.getChildren().get(i*8+j)

は、戻り値の型がオブジェクトであるので、あなたはそれをキャストする必要がありますが、私の場合にはそれがあります:

(StackPane) (myGridPane.getChildren().get(i*8+j))

+1

を返信するためにこれは、いくつかのケースでは本当かもしれありがとうございましたが、子どもたちのリストは、必ずしも行/列の順序で維持されていないとGridPane.setRowIndex()などで後から変更することができます。.. – Adam

+0

私はsetRowIndex()を使用したことがないので、あまり言い表せません。このソリューションは私のために働いたし、デフォルトの行/列インデックスを変更しないと、ほとんどの場合、仕事が完了するはずです。 –

関連する問題