我有一个BorderPane
,它的中心窗格是GridPane
。GridPane
有20x20个矩形对象
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
方法接受:Node child-r、列和行索引。
如何使用此索引访问网格
我的BorderPane
对类是静态的
private static BorderPane bp = new BorderPane();
因此,当我键入bp. getCenter(网格)时,我找不到任何合适的方法来插入列和行索引,这将返回我的Rectange
对象?
编辑:解决方案JavaFX:按行和列获取节点
您需要使用静态方法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;
}