【发布时间】:2022-01-25 17:55:09
【问题描述】:
我的目标是在 JavaFX 中构建一个有 24 个按钮的窗口,这样:
- 按钮应放置在 4x6 网格中(即 4 列 6 行)
- 以允许网格填充整个窗口的方式编辑网格和按钮(即使在调整大小时)
我现在遇到的问题是关于按钮大小,我可以使用 setMinHeight 和 setMaxHeight 来增加按钮大小,但是如果窗口大小发生变化,它不会响应。
我的代码-
private Button getSOSButton(){
//create button
Button b = new Button();
b.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE)
return b;
};
我在循环内尝试了 b.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE) 但它不起作用。
int i=0;
int j=0;
GridPane gridPane = new GridPane();
for(i=0;i<6;i++) {
for (j = 0; j < 4; j++) {
gridPane.add(getSOSButton(), i, j, 1, 1);
}
}
gridPane.setPadding(new Insets(25,0,0,0));
gridPane.setAlignment(Pos.CENTER);
StackPane layout = new StackPane();
layout.getChildren().addAll(hbox,gridPane);
Scene scene = new Scene(layout, 600, 800);
stage.setScene(scene);
stage.show();
【问题讨论】:
-
如果您期望按钮会增长,为什么要设置它们的最大宽度和高度?
-
好吧,起初我尝试在 for 循环和 getSOSButton() 内部使用
b.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE)但是该函数没有响应。然后我用 Max Min 来检查它是否工作(这个函数工作) -
@James_D 现在我编辑了那部分
-
有tips for resizing button layouts 包括指向resizable button grid 的链接,他们可能会教你一些东西,但可能并不能完全解决你的问题。