如何禁用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
相关产品推荐
相关产品推荐

