是否有一种不同的方式来在javafx中设置表格行的样式

时间:2016-09-07 15:53:34

标签: javafx tableview

我目前正在使用Javafx中的自定义单元工厂来使用css设置表格视图的单元格/行的样式。这是成功的,我确切地需要它。我想知道是否有另一种方式来设置表格视图的行。

我想用css动态调整整行,而不是逐个单元格。一些行将是不同的颜色等。字体填充,背景颜色,字体大小等。没有什么花哨的。

1 个答案:

答案 0 :(得分:3)

您可以在表格上使用rowFactory来生成行,并操纵行的样式类或附加到行的伪类。然后使用外部样式表来应用样式。

e.g。

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