2015-05-30 3 views
0

Я положил Gridpane внутри на AnchorPane, моя Gridpane имеет набор TextField, Label и Buttons, и я хочу, чтобы это было в Anchorpane, но моя GridPane просто торчит в левом верхнем углу AnchorPane i ' ve установил setTopanchor и т. д. для GridPane, но он не применим к Anchorpane, я хочу, чтобы он был помещен в центр. вот образец. Есть ли недостающие для него просто не применяются в AnchorPane? tnx Я буду ждать твоей помощи.GridPane внутри AnchorPane

enter image description here

ответ

1

Если я получил свой вопрос прямо, и вы хотите центрировать GridPane в AnchorPane, вы можете попробовать что-то вроде этого на каждой AnchorPane ширины или изменения высоты (anchorPane.widthProperty().addListener()):

double x = (anchorPane.getWidth() - GRID_SIZE)/2; 
    double y = (anchorPane.getHeight() - GRID_SIZE)/2; 

    AnchorPane.setRightAnchor(grid, x); 
    AnchorPane.setTopAnchor(grid, y); 
    AnchorPane.setLeftAnchor(grid, x); 
    AnchorPane.setBottomAnchor(grid, y); 

В основном, вам нужно рассчитать смещение с каждой стороны и установить привязку.

Вот некоторые демо-код StackPane и AncorPane: https://github.com/varren/JavaFX-Center-GridPane-in-other-Pane/tree/master/src/sample

Но если вы просто хотите, чтобы ваша сетка в полной AnchorPane размер, вы можете просто установить

AnchorPane.setRightAnchor(grid, .0); 
    AnchorPane.setTopAnchor(grid, .0); 
    AnchorPane.setLeftAnchor(grid, .0); 
    AnchorPane.setBottomAnchor(grid, .0); 

И не будет никакой необходимости для прослушивания изменений размера AnchorPane.

+0

спасибо большое :) – unknown

Смежные вопросы