我想将结果设置为Pane
的中心。
Label results = new Label("You win");
Pane pane = new Pane();
pane.getChildren().add(results);
我已尝试过以下两行代码,但都无效。
results.setAlignment(Pos.CENTER);
results.setContentDisplay(ContentDisplay.CENTER);
顺便说一句,我知道如何以StackPane
和GridPane
为中心,但在这种情况下,我需要使用普通Pane
。
答案 0 :(得分:4)
Pane
不支持以儿童为中心。因此,必须手动完成,即layoutX
和layoutY
位置必须“手动”计算。
您可以通过绑定来实现这一目标:
results.layoutXProperty().bind(pane.widthProperty().subtract(results.widthProperty()).divide(2));
// procede accordingly with layoutY / height
答案 1 :(得分:-1)
我对绑定感到无聊,所以我做了一些简单的事情。从那时起,我的“ MessageBox”始终处于中心位置。中心窗格到AnchorPane。可以与其他控件和容器一起使用,我没有尝试过。
double w = (anchorpane.getWidth()/2)-(panel.getWidth()/2);
double h = (anchorpane.getHeight()/2)-(panel.getHeight()/2);
panel.setLayoutX(w); panel.setLayoutY(h);