如何在 TableView 上正确覆盖默认的 JavaFX 8 CSS

How to correctly override default JavaFX 8 CSS on TableView

我试图覆盖 JavaFX 中表视图中某些列的默认样式。基本上我想让可编辑的值呈现浅黄色背景,以便人们知道这些列是可编辑的。

但是当我在字段上设置 CSS 时:

.editableColumn.table-cell { 
-fx-background-color:lightyellow;
-fx-alignment:CENTER-RIGHT;
-fx-border-width: .5px; 
-fx-border-style: solid;
-fx-border-color:grey;
}

它删除了其余的格式,因此高亮条等都没有了。

我需要设置什么 CSS 属性才能突出显示,这样我的值才不会消失(这里是黄底白字,所以您看不到值)。

谢谢!

如果您只想确保文本颜色适合您设置的背景,请尝试将 -fx-background 设置为与 -fx-background-color 相同的值:

.editableColumn.table-cell { 
-fx-background-color:lightyellow;
-fx-background: lightyellow ;
-fx-alignment:CENTER-RIGHT;
-fx-border-width: .5px; 
-fx-border-style: solid;
-fx-border-color:grey;
}

如果您希望 "selected style" 覆盖既在您的列中又在选定行中的单元格的 "editable style",我认为您需要手动恢复为默认样式选定的单元格。像

.table-row-cell:filled:selected .editableColumn.table-cell {
    -fx-background-color: null ;
    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
    /* -fx-border-width: null ; (not sure about this one...) */
}