繁体   English   中英

如何在Javafx中的窗格上将标签居中

[英]how to center a label on a pane in javafx

我想将结果设置在Pane的中心。

Label results = new Label("You win");
Pane pane = new Pane();
pane.getChildren().add(results);

我已经尝试了下面两行代码,但都没有用。

results.setAlignment(Pos.CENTER);
results.setContentDisplay(ContentDisplay.CENTER);

顺便说一句,我知道如何以StackPaneGridPane为中心,但是在这种情况下,我需要使用普通的Pane

Pane不支持将孩子居中。 因此,它必须手动完成,即layoutXlayoutY位置必须“手动”计算。

您可以通过绑定来实现:

results.layoutXProperty().bind(pane.widthProperty().subtract(results.widthProperty()).divide(2));
// procede accordingly with layoutY / height

我对绑定很无聊,所以我做了一些简单的事情。 从那时起,我的“ MessageBox”始终处于中心位置。 中心窗格到AnchorPane。 可以与其他控件和容器一起使用,我没有尝试过。

double w = (anchorpane.getWidth()/2)-(panel.getWidth()/2);
double h = (anchorpane.getHeight()/2)-(panel.getHeight()/2);
panel.setLayoutX(w); panel.setLayoutY(h);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM