Как изменить цвета строк TableView?
У меня есть таблица и хочу изменить цвета строк по умолчанию, если я...
1.... парить над строкой
2.... выбрал строку.
Есть ли простой способ сделать все это в css-файле?
Все, что я узнал, это то, что для случая 1 я могу установить
.table-cell:hover {
-fx-background-color: green; }
в css-файле. При этом меняется цвет ячейки, но не цвет всей строки.
.table-view .row-selection:hover{
-fx-background-color: lightgreen; }
и многие другие комбинации, которые я пробовал, не работают.
1 ответ
Решение
/* 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;
}