编辑时,JavaFX CSS样式化TableView Cell

时间:2015-04-09 09:50:53

标签: java css javafx tableview cell

我在更改文字时尝试更改CSS style TableView Cell,但我无法找到任何选择器。 在图像上,您可以看到白色/蓝色边框,这就是我想要更改的内容。

enter image description here

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;
}

注意:在我的示例中,只有当我在编辑字段外单击时才会看到紫色,这是未聚焦的背景颜色。