purring pigeon
purring pigeon

Reputation: 4209

How to correctly override default JavaFX 8 CSS on TableView

I am attempting to override the default style of certain columns in a tableview in JavaFX. Basically I would like to have editable values present a lightyellow background so that people know that those columns are editable.

However when I set this CSS on the field:

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

It removed the rest of the formatting, so highlight bars, etc are gone.enter image description here

What CSS properties do I need to set so that the highlighting works, so that my values don't vanish (here it's white on yellow so you can't see the value).

Thanks!

Upvotes: 1

Views: 4114

Answers (1)

James_D
James_D

Reputation: 209235

If you just want to make sure the text color is appropriate for the background you set, try setting -fx-background to the same value as -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;
}

If you want the "selected style" to override the "editable style" for cells that are both in your column and are in a selected row, I think you will need to manually revert to the default styles for selected cells. Something like

.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...) */
}

Upvotes: 2

Related Questions