选中后更改背景颜色表视图,突出显示持久性

时间:2018-05-07 12:28:15

标签: css javafx

我想在选择时更改tableView(javafx)背景的颜色,但我有一条蓝线(颜色与突出显示颜色相同):example

这是我的CSS代码:

.table-view {
    -fx-faint-focus-color: transparent;
    -fx-focus-color: transparent;
}
.table-view .table-row-cell:selected {
    -fx-body-color: #CEDAE3;
    -fx-background-color: #CEDAE3;
    -fx-text-fill: black;
}
.table-view:focused {
  -fx-background-color: transparent,-fx-box-border,-fx-control-inner-background;
}

你能帮助我吗?

2 个答案:

答案 0 :(得分:1)

默认样式表modena.css具有规则

.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected {
    -fx-background: -fx-selection-bar;
    -fx-table-cell-border-color: derive(-fx-selection-bar, 20%);
}

这会将所选行中单元格中的-fx-background查找颜色设置为-fx-selection-bar,将-fx-table-cell-border-color查找颜色设置为比它轻20%的颜色。

table-cell通过

定义其边框颜色
.table-cell {
    -fx-padding: 0.166667em; /* 2px, plus border adds 1px */
    -fx-background-color: null;
    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
    -fx-cell-size: 2.0em; /* 24 */
    -fx-text-fill: -fx-text-background-color;
}

因此,在所选行的单元格中,您会看到由-fx-selection-bar定义的右边框。

-fx-selection-bar的默认设置位于样式表的顶部:

/* A bright blue for highlighting/accenting objects.  For example: selected
 * text; selected items in menus, lists, trees, and tables; progress bars */
-fx-accent: #0096C9;

/* ... */

-fx-selection-bar: -fx-accent;

因此,您可以通过为表格视图重新定义-fx-accent来删除此边框:

.table-view {
    -fx-accent: transparent ;
    -fx-faint-focus-color: transparent;
    -fx-focus-color: transparent;
}

答案 1 :(得分:0)

您可以使用此规则更改tableView的外边框和内边框的颜色:

.table-row-cell:selected {
    -fx-border-color: black;
    -fx-table-cell-border-color: black;
}