猿问

何时更新标签的 widthProperty?

我使用 a通过将它们添加到其子列表Pane来打印一些Label。出于某种原因,我需要绑定标签宽度,但是当我执行以下操作时:


public class LabelTestApp extends Application

{

    private Pane root = new Pane();

    private Label myLabel = new Label("test");


    public static void main(String[] args)

    {

        launch(args);

    }


    @Override

    public void start(Stage stage)

    {

        root.getChildren.add(myLabel);

        System.out.println(myLabel.widthProperty());

        stage.setScene(new Scene(root, 500, 500);

        stage.show();

     }

}

似乎Label没有更新其宽度。当我打印它时:


System.out.println(myLabel.widthProperty());

我得到:


ReadOnlyDoubleProperty [bean : Label@xxxxxxxx[styleClass = label]'test', name:width, value: 0.0]

所以我想 Label 的宽度是在 Layout 期间计算的,并且由于 Pane 没有任何 Layout manager,所以它永远不会被计算,对吗?


如果是这样,我应该如何获得这个宽度?


如果没有,问题出在其他地方,我无法弄清楚在哪里。


有关信息:我需要使用 Pane 来绘制一些Shape,并控制它们的位置。标签的目的是在形状上打印一些信息。我需要标签的宽度,因为它们Line在形状上有一些,我不希望它们穿过标签。


不要犹豫,询问更多信息。


开满天机
浏览 148回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答