MacOS下JavaFX应用全屏时对话框全屏问题求助(OpenJFX 25/Java 25)
解决MacOS下JavaFX全屏时对话框全屏的问题
方案1:显式指定对话框的尺寸与所有者
在弹出对话框时,绑定到主窗口并强制设置首选大小,避免系统自动拉伸成全屏:
// 假设primaryStage是你的主窗口 Dialog<Void> dialog = new Dialog<>(); dialog.initOwner(primaryStage); // 强制设置对话框的初始尺寸 dialog.setPrefWidth(600); dialog.setPrefHeight(400); // 后续对话框配置逻辑...
方案2:用Stage替代Dialog实现对话框功能
Stage比Dialog拥有更灵活的窗口属性控制,能彻底避免全屏拉伸问题:
Stage dialogStage = new Stage(); dialogStage.initOwner(primaryStage); dialogStage.initModality(Modality.APPLICATION_MODAL); // 自定义对话框内容与尺寸 dialogStage.setScene(new Scene(new VBox(new Label("对话框内容")), 600, 400)); dialogStage.setResizable(false); // 可选,固定对话框大小 dialogStage.showAndWait();
方案3:调整对话框的StageStyle
将对话框的初始化风格设为UTILITY,这类窗口默认会保持紧凑尺寸,不会跟随主窗口全屏:
Dialog<Void> dialog = new Dialog<>(); dialog.initOwner(primaryStage); dialog.initStyle(StageStyle.UTILITY); // 对话框配置...
方案4:验证OpenJFX版本兼容性
OpenJFX 25在MacOS上可能存在全屏场景的适配bug,可尝试升级到最新小版本(如25.0.1),或回退到OpenJFX 24版本确认是否为版本特定问题。
内容的提问来源于stack exchange,提问作者guymac
相关产品推荐
相关产品推荐

