JavaFX Tableview 使特定单元格着色
JavaFX Tableview make specific cells colored
TableColumn tc = new TableColumn();
tc.getStyleClass.add(".style in css file")
我用 css 文件设置了表格列。我想让每个单元格都有不同的背景。有什么办法吗?
tableColumn row 1 bakcground color = green, row2 = red, row3 = blue....等
您必须为 TableView 使用 setRowFactory 并更改行样式。
那里的一个小例子:
tableView.setRowFactory(new Callback<TableView<Data_type>, TableRow<Data_type>>(){
//There can define some colors.
int color = 0;
String colors[] = new String[]{"red","blue","green"};
@Override
public TableRow<Data_type> call(TableView<Data_type> param) {
final TableRow<Data_type> row = new TableRow<Data_type>() {
@Override
protected void updateItem(Data_type item, boolean empty) {
super.updateItem(item, empty);
//there write your code to stylize row
if(getIndex() > -1){
String color = colors[getIndex() % 3];
setStyle("-fx-background-color: "+ color + ";");
}
}
};
return row;
}
});
结果:
TableColumn tc = new TableColumn();
tc.getStyleClass.add(".style in css file")
我用 css 文件设置了表格列。我想让每个单元格都有不同的背景。有什么办法吗?
tableColumn row 1 bakcground color = green, row2 = red, row3 = blue....等
您必须为 TableView 使用 setRowFactory 并更改行样式。
那里的一个小例子:
tableView.setRowFactory(new Callback<TableView<Data_type>, TableRow<Data_type>>(){
//There can define some colors.
int color = 0;
String colors[] = new String[]{"red","blue","green"};
@Override
public TableRow<Data_type> call(TableView<Data_type> param) {
final TableRow<Data_type> row = new TableRow<Data_type>() {
@Override
protected void updateItem(Data_type item, boolean empty) {
super.updateItem(item, empty);
//there write your code to stylize row
if(getIndex() > -1){
String color = colors[getIndex() % 3];
setStyle("-fx-background-color: "+ color + ";");
}
}
};
return row;
}
});
结果: