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 不够。这意味着如果包含 moneyBox
的 Group
增长,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...
我希望更改数字变量时没问题,但是当增加时,按钮会从 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 不够。这意味着如果包含 moneyBox
的 Group
增长,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...