如何更改TableView行的颜色?

时间:2012-10-05 12:39:21

标签: javafx-2

我有一个tableview,如果我...想要更改行的默认颜色 1. ...悬停在一排之上。
2. ...选择了一行。

有没有一种简单的方法可以在css文件中完成所有这些操作?

我发现的是,对于案例1,我可以设置

.table-cell:hover { -fx-background-color: green; }

在css文件中。因此,单元格的颜色会发生变化,但整行的颜色不会变化。

.table-view .row-selection:hover{ -fx-background-color: lightgreen; } 我试过的很多其他组合都不起作用。

1 个答案:

答案 0 :(得分:17)

/* Selected row */
.table-view:focused .table-row-cell:filled:focused:selected {
    -fx-background-color: brown;
    -fx-background-insets: 0, 1, 2;
    -fx-background: -fx-accent;
    -fx-text-fill: -fx-selection-bar-text;
}

/* Selected row when table not focused */
.table-row-cell:filled:focused:selected {
    -fx-background-color: red;
    -fx-background-insets: 0, 1, 2;
    -fx-background: -fx-accent;
    -fx-text-fill: -fx-selection-bar-text;
}

/* Row hovered */
.table-view:row-selection .table-row-cell:filled:hover {
    -fx-background-color: green;
    -fx-background-insets: 0, 0 0 1 0;
    -fx-text-fill: -fx-text-inner-color;
}

/* Selected row hovered */
.table-view:focused .table-row-cell:filled:focused:selected:hover {
    -fx-background: -fx-accent;
    -fx-background-color: yellow;
    -fx-background-insets: 0, 1, 2;
    -fx-text-fill: -fx-selection-bar-text;
}

/* Selected row hovered when table not focused */
.table-view:row-selection .table-row-cell:filled:focused:hover {
    -fx-background-color: blue;
    -fx-background-insets: 0, 0 0 1 0, 1 1 2 1, 2 2 3 2, 3 3 4 3;
    -fx-text-fill: -fx-text-inner-color;
}