2016-09-07 15 views
-1

我目前正在Javafx中使用自定義單元工廠來使用css對我的表格視圖的單元格/行進行樣式設置。這是成功的,確切地說我需要它。我想知道是否有另一種方式來設置表視圖的行。是否有不同的方式來設置javafx中的表格行

我想用css動態改變整個行的樣式,而不是逐個單元格。一些行將會是不同的顏色等。字體填充,背景顏色,字體大小等等。沒有什麼奇特的。

回答

1

您可以在表上使用rowFactory,該表生成行並操縱行的樣式類或附加到該行的僞類。然後使用外部樣式表來應用樣式。

例如

PseudoClass foo = PseudoClass.getPseudoClass("foo"); 
table.setRowFactory(tv -> { 
    TableRow<MyDataType> row = new TableRow<>(); 
    row.itemProperty().addListener((obs, oldItem, newItem) -> { 
     if (/* some condition on newItem */) { 
      row.pseudoClassStateChanged(foo, true); 
     } else { 
      row.pseudoClassStateChanged(foo, false); 
     } 
    }); 
    return row ; 
}); 

然後

.table-row-cell { 
    /* your regular style settings here */ 
} 

.table-row-cell:foo { 
    /* your specific style for when foo is set here */ 
} 
+0

不正是我一直在尋找,但還是對我非常有用的。我一直在尋找更多的動態樣式,而不是一次一個單元格的行,像細胞工廠一樣。將編輯我的問題更清晰。 –

+0

這就是我正在尋找的。非常感謝你。 –

+0

@MichaelPickett有關相關問題,請參閱http://stackoverflow.com/questions/20350099/programmatically-change-the-tableview-row-appearance/20409924#20409924。 –

相關問題