Я использую 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]
Так что я полагаю, что ширина метки вычисляется во время макета, а поскольку у панели нетМенеджер по расположению, это никогда не вычисляется, я прав?
Если так, как я должен получить эту ширину?
Если нет, проблема где-то еще, и я не могувыяснить, где.
Для информации: мне нужно использовать панель, чтобы нарисовать немного Shape
, и контролировать их размещение.Цель лейбла состоит в том, чтобы напечатать некоторую информацию о формах.Мне нужна ширина метки, потому что они имеют размеры Line
на фигурах, и я не хочу, чтобы они пересекали метку.
Не стесняйтесь спрашивать дополнительную информацию.