gpt4 book ai didi

java - 如何为 TableView 的一行着色?

转载 作者:行者123 更新时间:2023-12-02 12:50:07 25 4
gpt4 key购买 nike

我试图了解如何使用 JavaFX,但很难理解如何用不同的颜色为 tableView 的不同行着色。

我有一个带有表格 View 的场景,它根据单选按钮获取不同的数据。一个选项显示不带颜色的数据,其他颜色行取决于数字有多大。

有缺陷的方法:

private void drawTableColor(){

//tableColumns[0] = new TableColumn("Spieltag");

//tableColumns[0].setCellValueFactory(new PropertyValueFactory<MyClass, String>("day"));

/*tableColumns[0].setCellFactory(column -> {
return new TableCell<MyClass,String>(){
@Override
protected void updateItem(String s, boolean empty){
super.updateItem(s, empty);

int i = Integer.parseInt(s);
System.out.println("TEST " +i);
if (i<=3){
setTextFill(Color.BLUE);
} else if (i==4){
setTextFill(Color.AZURE);
} else if (i <= 6){
setTextFill(Color.GREEN);
} else if (i == 16){
setTextFill(Color.ORANGE);
} else if (i>16){
setTextFill(Color.RED);
}
}

};
});*/

ObservableList<MyClass> data2 = FXCollections.observableArrayList(data);
tableView.setItems(null);
tableView.setItems(data2);
}

注释掉的部分给我带来了麻烦。它不会为该行着色,也不会在该列中显示任何内容。如果第一行被注释,它将跳过 updateItem 部分。知道我做错了什么吗?

最佳答案

问题是您正在使用 settextfill()相反,您应该设置背景的样式

private void drawTableColor(){

//tableColumns[0] = new TableColumn("Spieltag");

//tableColumns[0].setCellValueFactory(new PropertyValueFactory<MyClass, String>("day"));

/*tableColumns[0].setCellFactory(column -> {
return new TableCell<MyClass,String>(){
@Override
protected void updateItem(String s, boolean empty){
super.updateItem(s, empty);

int i = Integer.parseInt(s);
System.out.println("TEST " +i);
if (i<=3){
setStyle("-fx-background-color: blue");
} else if (i==4){
setStyle("-fx-background-color: azure");
} else if (i <= 6){
setStyle("-fx-background-color: green");
} else if (i == 16){
setStyle("-fx-background-color: orange");
} else if (i>16){
setStyle("-fx-background-color: red");
}
}

};
});*/

ObservableList<MyClass> data2 = FXCollections.observableArrayList(data);
tableView.setItems(null);
tableView.setItems(data2);
}

关于java - 如何为 TableView 的一行着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44620377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com