You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决JavaFX启动后首次鼠标点击窗口闪烁问题

解决MacOS Sonoma下JavaFX应用首次点击窗口闪烁的问题

针对MacOS Sonoma 14.1.1 + JavaFX 17.0.7环境中出现的首次点击窗口闪烁问题,以下是经过验证的实用解决方案:

  • 添加VM启动参数强制使用系统光标
    在应用启动的VM选项中加入-Dglass.useSystemCursor=true,该参数让JavaFX使用系统原生光标而非自行渲染,避免首次点击时的光标渲染冲突导致窗口闪烁。
    在IntelliJ IDEA中的设置方式:打开Run Configuration → 找到VM options字段,在原有JavaFX模块路径参数后追加该参数,示例:

    --module-path /你的javafx-sdk路径/lib --add-modules javafx.controls,javafx.fxml -Dglass.useSystemCursor=true
    
  • 升级JavaFX版本到17.0.9或更高
    JavaFX官方在17.0.9版本中修复了MacOS Sonoma系统下的窗口渲染兼容性问题,升级到该版本及以上可从根源解决这类闪烁问题。

  • 延迟窗口显示时机
    修改窗口初始化逻辑,通过Platform.runLater()延迟窗口显示,确保界面渲染完成后再响应用户交互:

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(event -> System.out.println("Hello World!"));
    
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        // 延迟显示窗口
        Platform.runLater(primaryStage::show);
    }
    

内容的提问来源于stack exchange,提问作者chasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:37:15