Java FX 出 window 屏幕

Java FX out of the window screen

我希望更改数字变量时没问题,但是当增加时,按钮会从 window 中消失。如何解决?还有如何把条降到“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);

通过在此处使用 Group

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

您正在创建一个布局结构,它可以将 hboxBottomElements 大小调整为首选大小,而不受 space 可用大小的影响。
HBox 只是将元素移出其边界的右侧,如果可用的 space 不够。这意味着如果包含 moneyBoxGroup 增长,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();
}

这将调整 filler 的大小以使 HBox 适合 window。

现在替换

Scene scene = new Scene(hBox);

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

并且 Button 将移出 window...