【发布时间】:2016-01-12 21:21:46
【问题描述】:
我正在尝试使用 2 列创建具有特定布局的窗口,但我无法完全按照我想要的方式工作。
首先,一些简化的示例代码:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class GridTest extends Application {
@Override
public void start(final Stage stage) throws Exception {
final GridPane grid = new GridPane();
grid.setHgap(5);
grid.setVgap(5);
grid.setPadding(new Insets(10, 10, 10, 10));
grid.add(new Label("Something:"), 0, 0);
final Spinner<?> s1 = new Spinner<>();
grid.add(s1, 1, 0);
grid.add(new Label("Another thing:"), 0, 1);
final Spinner<?> s2 = new Spinner<>();
grid.add(s2, 1, 1);
final Button b = new Button("A button");
grid.add(b, 0, 2, 2, 1);
stage.setScene(new Scene(grid, 400, 150));
stage.show();
}
public static void main(final String... args) {
launch(args);
}
}
这就是我想要的:
- 微调器和按钮应使用所有可用宽度
- 标签应始终保持其首选宽度,切勿更改其大小
- 当我使窗口变宽时,微调器和按钮应该会变大
- 当我缩小窗口时,微调器和按钮应该会缩小,但不会低于它们的首选宽度
我尝试使用各种约束,但我无法让一切正常工作。我认为我发现的主要问题是,在让微调器使用可用宽度后,它们在缩小窗口时拒绝收缩。
我在 Linux 中使用 Oracle JDK 1.8.0_60。
【问题讨论】:
标签: java layout javafx javafx-8