2016-09-07 1 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 по связанным вопросам. –