删除TextField周围的焦点框

BAR*_*BAR 1 javafx

在创建TextField并设置时使用JavaFX

numberField.setFocusTraversable(false);
Run Code Online (Sandbox Code Playgroud)

然后单击蓝色框周围显示的字段.我想这是有道理的,但没有

setFocus(bool)
Run Code Online (Sandbox Code Playgroud)

命令.

我想摆脱这个盒子.有什么建议?

Ulu*_*Biy 6

setFocusTraversable(false)该节点禁用聚焦横动(由TAB和SHIFT + TAB).因此它与节点的GUI风格无关.要隐藏聚焦的蓝色,请执行以下操作:
通过代码

numberField.setStyle("-fx-focus-color: transparent;");
Run Code Online (Sandbox Code Playgroud)

或通过css文件

.text-field {
    -fx-focus-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

或css文件中的伪类

.text-field:focused{
     -fx-focus-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

-fx-focus-color 它不是css属性,它是caspian.css(JavaFX 2)的预定义颜色.

此答案与以下内容相关并参考:如何删除JavaFX按钮的默认边框发光(选中时)?.