1

我希望更改数字变量时会好起来,但是当数字变量增加时,按钮会从窗口中消失。如何解决?另外如何将酒吧降低到“10 $”的水平,所以它们会在同一行?

前 : 前

后 : 后

这是我的代码:

VBox vboxBottom = new VBox();
HBox hboxBottomElements = new HBox(15);
HBox hboxBottomMain = new HBox(0);

Region region = new Region();
region.setPrefWidth(500);

hboxBottomElements.getChildren().addAll(visaLabel, separator2, adLabel, separator3, governRelationStatus, separator4, region, next);
hboxBottomElements.setPadding(new Insets(5));

vboxBottom.getChildren().addAll(separator1, new Group(hboxBottomElements));

vboxBottom.setPadding(new Insets(3));

hboxBottomMain.getChildren().addAll(new Group(moneyBox), vboxBottom);
hboxBottomMain.setPadding(new Insets(3));
layout.setBottom(hboxBottomMain);
4

1 回答 1

0

通过在Group这里使用

vboxBottom.getChildren().addAll(separator1, new Group(hboxBottomElements));

您正在创建一个布局结构,该结构将大小调整hboxBottomElements为与可用空间无关的首选大小。
HBox如果可用空间不够,只需将元素移出边界的右侧。这意味着如果Group包含moneyBox增长,则将Button移出HBox...

以下更简单的示例演示了该行为:

@Override
public void start(Stage primaryStage) {
    Button btn = new Button("Do something");
    HBox.setHgrow(btn, Priority.NEVER);
    btn.setMinWidth(Region.USE_PREF_SIZE);
    Region filler = new Region();
    filler.setPrefWidth(100);
    HBox.setHgrow(filler, Priority.ALWAYS);
    Rectangle rect = new Rectangle(200, 50);
    HBox hBox = new HBox(rect, filler, btn);

    Scene scene = new Scene(hBox);

    primaryStage.setScene(scene);
    primaryStage.show();
}

这将调整大小fillerHBox适合窗口。

现在更换

Scene scene = new Scene(hBox);

Scene scene = new Scene(new Group(hBox));

并且Button将被移出窗口......

于 2017-03-05T09:11:34.687 回答