如何在javafx中将标签居中放置在窗格上
我想将结果设置到如何在javafx中将标签居中放置在窗格上,java,layout,javafx,pane,Java,Layout,Javafx,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将其居
窗格的中心
Label results = new Label("You win");
Pane pane = new Pane();
pane.getChildren().add(results);
我已经尝试了下面的两行代码,但都不起作用
results.setAlignment(Pos.CENTER);
results.setContentDisplay(ContentDisplay.CENTER);
顺便说一句,我知道如何使用
StackPane
和GridPane
将其居中,但在这种情况下,我需要使用普通的窗格
窗格
不支持将子项居中。因此必须手动完成,即必须“手动”计算layoutX
和layoutY
位置
Label results = new Label("You win");
Pane pane = new Pane();
pane.getChildren().add(results);
您可以通过绑定来实现这一点:
results.layoutXProperty().bind(pane.widthProperty().subtract(results.widthProperty()).divide(2));
// procede accordingly with layoutY / height
我对装订很厌烦,所以我做了一些简单的工作。从那时起,我的“信息盒”就一直处于中心位置。中间窗格玻璃到锚烷。可能与其他控件和容器一起工作,我没有尝试
double w = (anchorpane.getWidth()/2)-(panel.getWidth()/2);
double h = (anchorpane.getHeight()/2)-(panel.getHeight()/2);
panel.setLayoutX(w); panel.setLayoutY(h);