java - 如何限制用户可以调整 JavaFX 窗口大小的程度?

标签 java user-interface javafx resize fxml

我正在寻找方法来限制用户可以调整应用程序主窗口大小的程度,而不完全阻止调整大小。具体来说,我想设置窗口的最小宽度和高度,您会认为 minWidthminHeight会实现这一点,但显然他们没有。

我的窗口的根元素(在 fxml 中声明)如下所示:

<VBox xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml"
      fx:controller="com.my.module.FXMLController"
      minWidth="400.0">
    <!-- ... -->
</VBox>

但这一切minWidth似乎正在做的是设置窗口的初始大小。如果我尝试以用户身份调整窗口大小,我可以将其设置为与标题栏装饰一样小,这并不理想。

执行此操作的正确方法是什么?是否有一种声明性方法,而不是在用户“非法”调整窗口大小后强制恢复窗口的状态?此外,如果可能的话,我希望通过 FXML 文档而不是代码来完成此操作。

就上下文而言,这是 JVM 12 上的 JavaFX 12,我使用的是 Windows 10。
我在 SO 上发现了另一个类似的问题,但它没有得到解答,而且相当古老。

最佳答案

Stage具有宽度和高度属性,您可以使用Stage.setMinWidth()和.setMinHeight()。

您还可以像这样监听调整大小事件,

mainStage.widthProperty().addListener((o, oldValue, newValue)->{
    if(newValue.intValue() < 400.0) {
        mainStage.setResizable(false);
        mainStage.setWidth(400);
        mainStage.setResizable(true);
    }
});

关于java - 如何限制用户可以调整 JavaFX 窗口大小的程度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57425534/

相关文章:

java - Libgdx、TextureAtlas(.pack) 通过 AssetManager

java - RMI 未知主机异常

JavaFX 图表未正确分层

java - 从文本文件读取的音乐播放器会同时播放所有片段 Javafx

netbeans - 如何使用场景构建器在 java fxml 上制作图像按钮?

java - Eclipse 中的动态 Web 项目问题

java - OSGi DS 和手动停用组件

jquery - 如何画一个圆圈来表示在html中的选择

java - 打开新的 jFrame 时清空 ArrayList

ios - 设置 UISwitch 打开时的描边颜色?