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

JavaFX+Spring Boot应用全屏时底部出现白线问题求助

解决JavaFX+Spring Boot应用全屏底部白线问题

嘿,我之前在JavaFX项目里也碰到过一模一样的问题!这种底部的白线大概率是因为你同时调用了setMaximized(true)和setFullScreen(true)导致的——这两个方法其实是互斥的,一起使用会触发JavaFX的渲染冲突,进而出现奇怪的界面残留。

给你几个逐步排查的解决方案:

  • 优先移除setMaximized(true)调用
    全屏模式(setFullScreen(true))本身就会让窗口铺满整个屏幕,完全不需要再额外调用最大化方法。保留下面两行代码即可:

    stage.setFullScreen(true);
    stage.setAlwaysOnTop(true);
    

    这应该能解决绝大多数的白线问题。

  • 清空全屏退出提示(如果还有残留)
    有些时候JavaFX默认的全屏退出提示框会留下视觉残留,你可以清空它:

    stage.setFullScreenExitHint(""); // 移除默认的"按ESC退出全屏"提示
    stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH); // 可选:禁用ESC退出全屏的快捷键,按需使用
    
  • 检查根节点的边距和填充
    确认你的场景根节点(比如StackPane、BorderPane)没有设置额外的内边距或边框:

    // 以StackPane为例
    StackPane root = new StackPane();
    root.setPadding(new Insets(0)); // 确保根节点没有内边距
    Scene scene = new Scene(root);
    stage.setScene(scene);
    
  • 适配屏幕可视区域(针对系统任务栏干扰)
    如果是系统任务栏导致的白线,可以先获取屏幕的可视区域(排除任务栏),再设置全屏:

    Screen primaryScreen = Screen.getPrimary();
    Rectangle2D visualBounds = primaryScreen.getVisualBounds();
    // 先设置窗口尺寸为可视区域大小
    stage.setWidth(visualBounds.getWidth());
    stage.setHeight(visualBounds.getHeight());
    // 再开启全屏
    stage.setFullScreen(true);
    stage.setAlwaysOnTop(true);
    

先从第一个方案开始试,基本就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:59:11