如何防止将JavaFX窗口最大化到全屏显示?

And*_*rew 3 javafx javafx-2 javafx-8

我已经做到了...

myStage.initStyle(StageStyle.UTILITY);
Run Code Online (Sandbox Code Playgroud)

可以很好地删除最大化按钮,但是仍然可以双击窗口标题栏(在Windows中)以最大化窗口。

我试过了,但没有成功。

myStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> prop, Boolean wasIconified, Boolean isIconified) {
                System.out.println("ignore fullscreen");
            }
        });
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以消耗该事件,所以它没有效果?

Abd*_*bri 5

实际上,您正在听错误的属性,而您正在寻找的是 maximizedProperty

这是禁用窗口最大化的代码:

primaryStage.maximizedProperty()。addListener((observable,oldValue,newValue)-> {
            如果(newValue)
                primaryStage.setMaximized(false);
        });

它侦听最大化事件,然后检查它是否实际上在最大化,if (newVale)然后强制阶段禁用最大化。

希望能帮助到你


Sur*_*esh 5

使用此代码到您的舞台

myStage.setResizable(false);
Run Code Online (Sandbox Code Playgroud)


Ron*_*ven 3

如果您根本不希望用户调整窗口大小,可以将舞台的resizing 属性设置为 false。