我做到了......
myStage.initStyle(StageStyle.UTILITY);
适用于删除最大化按钮,但有人仍然可以双击窗口标题栏(在Windows中)以最大化窗口。
我尝试了这个,但它没有开火。
myStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> prop, Boolean wasIconified, Boolean isIconified) {
System.out.println("ignore fullscreen");
}
});
是否有其他方式来消耗该事件,因此它没有效果?
答案 0 :(得分:4)
实际上,您正在倾听错误的属性,您正在寻找的是(fact 2)
(fact 1)
(fact 0)
以下是禁用窗口最大化的代码:
primaryStage.maximizedProperty().addListener((observable, oldValue, newValue) -> { if (newValue) primaryStage.setMaximized(false); });
它会监听最大化事件,然后检查它是否实际通过maximizedProperty
最大化然后强制暂停阶段禁用最大化。
希望有所帮助
答案 1 :(得分:2)
如果您根本不希望用户调整窗口大小,则可以将舞台的resizable property设置为false。
答案 2 :(得分:2)
将此代码用于您的舞台
myStage.setResizable(false);
答案 3 :(得分:0)
约束舞台大小范围
myStage.setMaxHeight(500);
myStage.setMaxWidth(600);
可能
myStage.setMinHeight(50);
myStage.setMinWidth(60);
修改强>
好吧,我同意@kleopatra,双击窗口最大化是大多数操作系统GUI的常见行为,迟早OS用户会熟悉这一点。如果您的布局在较大/较小的尺寸上变得更糟,那么限制舞台尺寸仍然会有所帮助。并且还想要禁用双击行为,使用JavaFX(如Ensemble应用程序)构建自己的窗口管理器,而不依赖于操作系统提供的那个。