如何在VBox中增加标签

时间:2016-08-29 10:35:30

标签: java javafx javafx-8

我得到了以下设置:

Label errorLabel = new Label("Hello Hans");
Label warningLabel = new Label("HEEELLLOOOOOOOOOOOOOOOOOOOOOOOOO");
VBox box = new VBox();
box.getChildren().addAll(errorLabel, warningLabel);
Tooltip t = new Tooltip();
t.setGraphic(box);
t.show();

我的问题是,warningLabelerrorLabel的大小不同。它们应该水平地增长到相同的大小。我不想放一个特定的尺寸。两者的大小必须是标签需要更多的显示整个文本。

问题是,两个标签都有背景,你可以看到warningLabel占用更多空间。我需要这些标签的背景同样增长。

1 个答案:

答案 0 :(得分:1)

如果同时Double.MAX_VALUE s,您可以将maxWidthProperty设置为Label

Label errorLabel = new Label("Hello Hans");
errorLabel.setStyle("-fx-background-color: red");
Label warningLabel = new Label("HEEELLLOOOOOOOOOOOOOOOOOOOOOOOOO");
warningLabel.setStyle("-fx-background-color: orange");
warningLabel.setMaxWidth(Double.MAX_VALUE);
errorLabel.setMaxWidth(Double.MAX_VALUE);

输出Tooltip类似于:

enter image description here

背景:Making Buttons the Same Size - Using a VBox - Example 2-1

  

要将所有按钮的大小调整为VBox的宽度   窗格,每个按钮的最大宽度设置为Double.MAX_VALUE   常量,使控件无限制地增长。一个   使用最大值常量的替代方法是设置最大值   width到特定值,例如80.0。

注意:重要的是,VBox的{​​{3}}必须设置为true(默认情况下此属性为true):< / p>

  

是否可以调整可调整大小的孩子的大小以填补空白   vbox的宽度或保持其首选宽度并对齐   根据对齐hpos值。

这很重要,因为:

  

VBox会将儿童(如果可调整大小)调整到他们喜欢的高度   并使用其fillWidth属性来确定是否调整其大小   宽度以填充自己的宽度或保持其宽度为他们的首选   (fillWidth默认为true)。

因此,如果fillWidthProperty设置为true,VBox会尝试将其子项调整为自己的宽度,如果将maxWidthProperty设置为首选宽度,则无法进行调整每个孩子,这就是为什么这个属性必须设置为“足够大”的数字。