如何删除JavaFXbutton的默认边框发光(选中时)?

我试图删除当selectJavaFXbutton时默认显示的边框发光(请看下面的截图):

蓝色边框是JavaFX在选择按钮时的默认样式

我也想用CSS来做,而不是在主要的JavaFX脚本中声明。 然而,我很难搞清楚什么CSS属性我需要使用(呃,设置为0?),以删除该边界。

从代码内的任何控制中删除对焦环显示:

control.setStyle("-fx-focus-color: transparent;"); 

要删除所有控件的对焦环,请应用样式表:

 .root { -fx-focus-color: transparent; } 

要仅删除所有button的铃声,请使用:

 .button { -fx-focus-color: transparent; } 

我发现-fx-focus-color属性设置比依靠一些奇怪的插入组合来移除对焦环更直接。

另外,您可以使用相同的设置将对焦环更改为不同的颜色,例如-fx-focus-color: firebrick

2015年1月20日更新

JavaFX 8附带一个新的默认用户代理样式表( modena )。 这个新的用户代理样式表附带一个额外的焦点设置亮点: -fx-faint-focus-color 。 对于Java 8应用程序,有必要将-fx-focus-color-fx-faint-focus-color为透明,以消除聚焦环的所有痕迹。 看到good4m对这个问题的回答。

更新2015年12月10日

如果您只将焦点颜色设置为透明,如以前在此答案中所build议的那样,对于某些控件,您可能会看到控件聚焦时与不控时间之间的细微区别。 对于许多应用程序,这不会是一个问题,将焦点颜色设置为透明就足够了。

有关更多信息和备用解决scheme,请查看James_D的回答: 从JavaFXinput字段中删除蓝框,以及Jens Deter的博客文章,了解如何摆脱JavaFX中的焦点突出显示 。 请注意,与Jens Deter的博客链接不幸有一些恼人的popup窗口。

 -fx-focus-color: transparent; -fx-faint-focus-color: transparent; 

有几种方法可以做到这一点。 你可以试试这个。

 button.setStyle("-fx-focus-color: transparent;"); 

要么

 .button{ -fx-focus-color: transparent; } 

要么

 .button:focused{ -fx-focus-color: transparent; } 

如果要在JavaFX 8中删除此焦点环,请使用modena.css中的.buttonselect器样式重写:focusselect器。

 .button:focused { -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color; -fx-background-insets: 0, 1, 2; -fx-background-radius: 5, 4, 3; } 

Stelios Adamantidis的回答是正确的,

 .button:focused { -fx-background-insets: 0, 0, 1, 2; } 

这是我的解释:

例如定义

 -fx-background-color: red, green, deepskyblue, blue; 

似乎定义了四层背景色,红色作为最后一层的颜色。

例如定义

 -fx-background-radius: 0, 1, 4, 10; 

为每个颜色层设置所有angular的半径。 在这里,红色图层的所有angular落的半径为0,绿色图层的所有angular落的半径为1,依此类推。

例如定义

 -fx-background-insets: -10, 0, 3, 5; 

设置颜色层的填充。 您也可以设置负值,然后颜色将围绕控件。

button的默认值似乎是这样的:

 .button:focused { -fx-background-color: <blueGlowingColor>, <?>, <?>, linear-gradient(to bottom, <?>, <?>); -fx-background-insets: -1, 0, 1, 2; } 

将第一个insets的值设置为0会将发光颜色隐藏在第二个颜色的后面。

有关JavaFX CSS的更多信息,可以在这里find:
http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html