2016-12-03 2 views
0

私は、等しい数の列と行で正方形のGridPaneを動的に生成しています。 GridPaneの各インデックスにRectangleオブジェクトを設定しています。私がする必要があるのは、これらのRectangleオブジェクトの1つの色を特定の(列、行)インデックスで変更することだけです。この問題を解決するには2つの方法があります。JavaのGridPane内のノードにアクセスする方法

  1. オブジェクトを取得し、setFill()メソッドでオブジェクトの色を直接変更します。

  2. ターゲットインデックスで矩形を削除し、新しい矩形を作成して新しい矩形を挿入します。

いずれかの方法についてのアイディアがあれば、私は非常に感謝します。

+0

のレイアウトパラメータを使用して、子を特定することができました。 http://stackoverflow.com/questions/33534594/generating-an-nxn-grid/33535310#33535310またはグリッドパネルを使用する必要がある場合http://stackoverflow.com/questions/33815075/how-to-obtain-the-情報の内部 - グリッドペイン - javafx/33817265#33817265 – Steven

答えて

0

もちろん、あなたが簡単に与えられたインデックスを使用して要素にアクセスすることができますGridPaneインデックスに一致する配列のインデックスとRectangle[][]配列、それらにRectangle Sを格納することができます。

ただしまた、ここではあなたが試すことができますいくつかの他の方法がありますGridPane

for (Node child : gridPane.getChildren()) { 
    Integer r = GridPane.getRowIndex(child); 
    Integer c = GridPane.getColumnIndex(child); 
    int row = r == null ? 0 : r; 
    int column = c == null ? 0 : c; 
    if (row == searchRow && column == searchColumn && (child instanceof Rectangle)) { 
     Rectangle rect = (Rectangle) child; 

     // do something with rect 

     break; 
    } 
} 
関連する問題