Я пытаюсь изменить CSS style
TableView Cell
, когда я меняю текст, но я не могу найти селектор для этого. На изображении вы можете увидеть белую/синюю границу, вот что я хочу изменить.JavaFX CSS стиль TableView Cell on edit
ответ
Если вы хотите изменить синюю рамку или фон, вы можете попытаться изменить свойства TextFieldTableCell
. Я могу управлять, чтобы изменить синюю рамку на красный, делая это:
TextFieldTableCell > * {
-fx-border-color: red;
}
Вы также можете изменить цвет внутри сфокусированной клетки (при записи в него), изменяя цвет фона TextFieldTableCell > *:focused
.
Я думаю, что белая рамка, о которой вы упоминаете, является обычным цветом для выбора ячейки (:select
). Вы можете изменить его, изменив цвет выделения, когда он не сфокусирован: .table-row-cell:selected
.
Я закончил с этим CSS, чтобы изменить белую рамку, синей и фона (как сфокусированных и нечеткости):
// blue border
TextFieldTableCell > * { // when editing
-fx-background-color: purple;
-fx-border-color: red;
}
// focused black background
TextFieldTableCell > *:focused { // when editing and clicking in the field
-fx-background-color: yellow;
}
// white border
.table-row-cell:selected { // normal selection (not focused) color
-fx-background-color: lightcoral;
}
Примечание: в моем примере, фиолетовый цвет виден только когда я щелкните вне поля редактирования, это цвет сфокусированным фокусом.
У меня был тот же вопрос на этой неделе. Вот как я это решил:
.text-field-table-cell .text-field {
-fx-padding: 1;
-fx-border-color:red;
-fx-background-color:yellow;
}
.table-cell:focused {
-fx-padding: 0;
}
Это также предотвращает изменение высоты строки.
Нормальный режим:
Режим редактирования:
Если вы заинтересованы в фокусе цвета, вы должны смотреть на modena.css. Там вы найдете e. г.
/* A bright blue for the focus indicator of objects. Typically used as the
* first color in -fx-background-color for the "focused" pseudo-class. Also
* typically used with insets of -1.4 to provide a glowing effect.
*/
-fx-focus-color: #f25f29;
-fx-faint-focus-color: #f25f2933;
Итак, вы нашли решение! :) –
Да, сегодня. Но это грязный. Вы должны играть с обивкой. Установка отступов на 2 растягивает TextField, и он выглядит нормально. Если вы установили цвет рамки, применяется граничный размер по умолчанию 1, и вам нужно будет установить отступ до 1. И тогда по-прежнему будет 1 пиксельная серая линия сверху и слева. Я просто заметил, что цвета по умолчанию имеют его, если вы внимательно посмотрите на внутреннюю границу в нормальном режиме. – Roland
Можете ли вы показать css, что у вас есть, что имеет отношение к 'TableView'? Используете ли вы 'TextFieldTableCell' или свою собственную реализацию TableCell? –
Вот CSS, который я использую (в основном, скопирован из caspian.css): http://pastebin.com/0BwCEzdT. И да, я использую TextFieldTableCell. – expensne
Опубликованный CSS выглядит немного иначе, как на картинке, которую я разместил - мне удалось изменить ее, чтобы белая рамка была синей рамкой. Но просто с попыткой и ошибкой я до сих пор не получил правильный селектор. – expensne