我得到了以下设置:
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();
我的问题是,warningLabel
和errorLabel
的大小不同。它们应该水平地增长到相同的大小。我不想放一个特定的尺寸。两者的大小必须是标签需要更多的显示整个文本。
问题是,两个标签都有背景,你可以看到warningLabel占用更多空间。我需要这些标签的背景同样增长。
答案 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
类似于:
背景: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
设置为首选宽度,则无法进行调整每个孩子,这就是为什么这个属性必须设置为“足够大”的数字。