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

如何禁用JavaFX ScrollPane的焦点(蓝色边框)?

解决JavaFX ScrollPane无法禁用焦点蓝色边框的问题

你遇到的问题根源在于:setFocusTraversable(false)仅控制组件是否可通过键盘遍历获取焦点,而ScrollPane的蓝色焦点边框是由CSS样式定义的视觉反馈,因此这个方法对它无效。以下是两种可行的解决办法:

方法一:通过CSS样式彻底移除焦点边框

修改你的.left-area样式,添加焦点颜色的透明设置:

.left-area {
    -fx-focus-color: transparent;
    -fx-faint-focus-color: transparent;
}

.left-area > .viewport {
    -fx-background-color: #525252;
}
  • -fx-focus-color:将焦点状态下的边框颜色设为透明
  • -fx-faint-focus-color:将淡焦点状态的颜色设为透明,覆盖所有焦点相关的视觉反馈

方法二:在代码中直接设置样式

如果不想修改全局CSS,也可以在代码里给ScrollPane单独设置样式:

public void config () {
    // 保留你原有的其他配置代码
    this.leftAreaPane.setStyle("-fx-focus-color: transparent; -fx-faint-focus-color: transparent;");
}

需要注意:即便设置了setFocusTraversable(false),ScrollPane仍可能通过点击等方式获得焦点,因此必须通过CSS覆盖焦点样式才能完全去掉蓝色边框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:10:03