2015-04-09 3 views
1

Я пытаюсь изменить CSS styleTableView Cell, когда я меняю текст, но я не могу найти селектор для этого. На изображении вы можете увидеть белую/синюю границу, вот что я хочу изменить.JavaFX CSS стиль TableView Cell on edit

enter image description here

+0

Можете ли вы показать css, что у вас есть, что имеет отношение к 'TableView'? Используете ли вы 'TextFieldTableCell' или свою собственную реализацию TableCell? –

+0

Вот CSS, который я использую (в основном, скопирован из caspian.css): http://pastebin.com/0BwCEzdT. И да, я использую TextFieldTableCell. – expensne

+0

Опубликованный CSS выглядит немного иначе, как на картинке, которую я разместил - мне удалось изменить ее, чтобы белая рамка была синей рамкой. Но просто с попыткой и ошибкой я до сих пор не получил правильный селектор. – expensne

ответ

0

Если вы хотите изменить синюю рамку или фон, вы можете попытаться изменить свойства 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; 
} 

Примечание: в моем примере, фиолетовый цвет виден только когда я щелкните вне поля редактирования, это цвет сфокусированным фокусом.

2

У меня был тот же вопрос на этой неделе. Вот как я это решил:

.text-field-table-cell .text-field { 
    -fx-padding: 1; 
    -fx-border-color:red; 
    -fx-background-color:yellow; 
} 
.table-cell:focused { 
    -fx-padding: 0; 
} 

Это также предотвращает изменение высоты строки.

Нормальный режим:

enter image description here

Режим редактирования:

enter image description here

Если вы заинтересованы в фокусе цвета, вы должны смотреть на 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; 
+0

Итак, вы нашли решение! :) –

+0

Да, сегодня. Но это грязный. Вы должны играть с обивкой. Установка отступов на 2 растягивает TextField, и он выглядит нормально. Если вы установили цвет рамки, применяется граничный размер по умолчанию 1, и вам нужно будет установить отступ до 1. И тогда по-прежнему будет 1 пиксельная серая линия сверху и слева. Я просто заметил, что цвета по умолчанию имеют его, если вы внимательно посмотрите на внутреннюю границу в нормальном режиме. – Roland