【发布时间】:2021-03-21 21:44:55
【问题描述】:
我正在使用 JavaFX 2.2.7-b01 编写应用程序。
这是我目前拥有的代码示例。如何允许调整应用程序窗口的大小但保持最初配置的纵横比?换句话说,如果用户调整窗口大小,窗口宽度应始终保持为窗口高度的两倍。
...
public void showScene(Stage stage, String fxmlPath) {
try {
FXMLLoader loader = new FXMLLoader();
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(fxmlPath);
Parent page;
try (InputStream in = Main.class.getResourceAsStream(fxmlPath)) {
page = (Parent) loader.load(in);
}
Scene scene = new Scene(page, 400, 200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
} catch (Exception ex) {
...
}
}
...
JavaFX 似乎允许用户在构造函数中指定场景的宽度和高度,但不允许通过编程访问来更新宽度或高度。没有 setWidth 或 setHeight 方法。我知道我可以添加属性侦听器以在调整场景大小时获取场景的 只读 宽度/高度,但我无法弄清楚如何动态更改场景尺寸,所以我可以强制保持纵横比。
我想如果我要对 Scene 对象进行子类化(如果我必须这样做的话),这将是可能的,但是还有其他简单的方法可以做到这一点吗?
【问题讨论】:
-
我认为您不会使用 JavaFX 2.2 找到合适的解决方案。我建议针对 JavaFX issue tracker 记录功能请求。
标签: javafx