JavaFX 8: стиль CheckBoxTreeTableCell - PullRequest
0 голосов
/ 25 июня 2018

В моем приложении есть TreeTableView.Корень скрыт.Следующий уровень - это список групп, а ниже - список пользователей.У каждой строки есть checkBoxTreeTableCell, который позволяет пользователю выбирать отдельных пользователей или группы, к которым они принадлежат (который затем выбирает всех пользователей в группе).

Мне бы хотелось, чтобы стиль чекбоксов соответствовал цветовой схеме моего приложения, но я не могу найти примеров того, как их стилизовать.

Я смог изменить их цвет, когда они не выбраны, установив это в css моего приложения:

.check-box-tree-table-cell .box {
    -fx-background-color: #72BD2D;
}

Однако я не могу найти способизменить цвет, когда флажок установлен.Также я не могу изменить цвет рамки, галочки и т. Д.

У кого-нибудь есть идеи?

Обратите внимание (перед тем, как пометить это как дубликат), что это чекbox-tree-table-cell - не флажок-table-cell-cell.Аналогично, это ячейка таблицы дерева, а не ячейка таблицы.

РЕДАКТИРОВАТЬ: При дальнейшем рассмотрении класс не реализует стил, поэтому я предполагаю, что именно это и является причиной проблемы.Мне интересно, как я могу изменить первоначальный цвет флажка с помощью CSS выше, хотя, учитывая, что он не может быть изменен?

1 Ответ

0 голосов
/ 26 июня 2018

Внутри ячейки древовидной таблицы находится обычный флажок, поэтому вы можете стилизовать его так же, как стиль любого другого флажка.

Проверьте, как установлен флажок в стандартной теме JavaFx ( modena.css , поиск check-box).

Попробуйте этот пример css в качестве отправной точки:

// container of check box
.tree-table-cell .check-box {
    -fx-background-color:pink;
}

// rounded box of check box
.tree-table-cell .check-box .box{
    -fx-background-color:green;
}

// checkmark of check box
.tree-table-cell .check-box .box .mark{
    -fx-background-color:yellow;
}


//Copied from modena.css
/*******************************************************************************
 *                                                                             *
 * CheckBox                                                                    *
 *                                                                             *
 ******************************************************************************/

.check-box {
    -fx-label-padding: 0.0em 0.0em 0.0em 0.416667em; /* 0 0 0 5 */
    -fx-text-fill: -fx-text-background-color;
}

.check-box > .box {
    -fx-background-radius: 3, 2, 1;
    -fx-padding: 0.166667em 0.166667em 0.25em 0.25em; /* 2 2 3 3 */
}

.check-box > .box > .mark {
    -fx-background-color: null;
    -fx-padding: 0.416667em 0.416667em 0.5em 0.5em; /* 5 5 6 6 */
    -fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
}

.check-box:indeterminate > .box {
    -fx-padding: 0;
}

.check-box:indeterminate  > .box > .mark {
    -fx-shape: "M0,0H10V2H0Z";
    -fx-scale-shape: false;
    -fx-padding: 0.666667em; /* 16x16 = 8+8 */
}
...