如何在JavaFX中更改TableView框架颜色?

时间:2016-08-30 10:53:51

标签: java css javafx tableview

我无法找到有关如何更改<{1}}元素焦点时的帧颜色(浅蓝色)的任何信息。这里有任何想法吗?

enter image description here

2 个答案:

答案 0 :(得分:3)

焦点边框着色由两个CSS属性scatteredInterpolant-fx-focus-color控制。

在大多数情况下,使用-fx-faint-focus-color就足够了,例如将此类添加到CSS文件中:

-fx-focus-color

或直接在Java代码中:

.table-view {
    -fx-focus-color: red;
}

但你也可以覆盖两者:

table.setStyle("-fx-focus-color: red;");

<强>背景

通过检查默认样式表 modena.css

.table-view {
    -fx-focus-color: red;
    -fx-faint-focus-color: white;
}

它发现这些颜色在.table-view:focused{ -fx-background-color: -fx-faint-focus-color, -fx-focus-color, -fx-control-inner-background; -fx-background-insets: -1.4, -0.3, 1; -fx-background-radius: 2, 0, 0; } 伪类中用作具有各种背景插入的背景颜色。因此,对此伪类的修改可能会影响焦点边框(例如边框的宽度)。

注1:如果要完全删除突出显示,可以将这些属性设置为:focused

注2:要对每个-fx-focus-color: transparent;应用相同的高亮颜色,您可以使用CSS文件中的Node类。

答案 1 :(得分:0)

感谢https://jsfiddle.net/rzy7L8gh/1/,我能够提出这个解决方案:

某种方式-fx-focus-color:-fx-background-insets:组件TableView无法合并。

-fx-background-insets:适用于-fx-faint-focus-color:。因此我的css解决方案如下所示:

.table-view:focused {
    -fx-faint-focus-color: red;
    -fx-background-insets: -3, 1, 2, 1;
}

现在它的工作完美!希望我们能帮助你的未来。