2017-02-06 15 views
0

私はBorderPaneを持っており、その中央ペインはGridPaneです。 R、列と行のインデックス - ノード子: GridPaneは、20×20の矩形がJavaFXの枠線グリッド

for (int rows = 0; rows < GRID_SIZE; ++rows) { 
    for (int cols = 0; cols < GRID_SIZE; ++cols) { 
      Rectangle r = new Rectangle(RECTANGLE_SIZE, RECTANGLE_SIZE); 
      grid.add(r, rows, cols); 

grid.add方法が受け入れるオブジェクト有します。

どのように私は、このインデックスを使用して、グリッドにアクセスすることができ

BorderPaneは、私はbp.getCenter(グリッド)を入力するときだから私は、任意の適切な方法を見つけることができないクラス

private static BorderPane bp = new BorderPane(); 

の静的です列番号と行番号を挿入すると、Rectangleオブジェクトが返されますか?

編集: ソリューションJavaFX: Get Node by row and column

+0

矩形を配列に入れないのはなぜですか? –

答えて

0

あなたは、静的メソッドGridPane.getColumnIndex(col)GridPane.getRowIndex(n)を使用する必要があります。このコードを試してみてください:

public Optional<Rectangle> findByIndex(GridPane gridPane, int row, int col) { 
    final Optional<Rectangle> rectangle = gridPane.getChildren().stream().map(n -> (Rectangle) n).filter(n -> GridPane.getColumnIndex(n) == col && GridPane.getRowIndex(n) == row).findFirst(); 
    return rectangle; 
} 
+0

は、ループごとにGridPaneを反復処理するのと同じではありませんか? –

+0

これにより、NPE: 'null'を' Integer'の代わりに使用することができます。 – fabian