假设您有一个ObservableList产品
ObservableList<Product> = FXCollections.observableArrayList();
产品定义为:
public class Product{
SimpleStringProperty name;
SimpleStringProperty status;
public void setName(String name){
this.name.set(name);
}
public String getName(){
return this.name.get();
}
public SimpleStringProperty nameProperty(){
return name;
}
public void setStatus(String status){
this.status.set(status);
}
public String getStatus(){
return this.status.get();
}
public SimpleStringProperty statusProperty(){
return status;
}}
如果状态为“可用”,为了使TableView的行加粗,我已将以下rowFactory编写为:
mytable.setRowFactory(new Callback<TableView<Product>, TableRow<Product>>() {
@Override
public TableRow<Product> call(TableView<Product> param) {
return new TableRow<Product>() {
@Override
protected void updateItem(Product item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setStyle("");
} else {
String status= item.getStatus();
if (!status.equals("Available")) {
setStyle("");
} else {
setStyle("-fx-font-weight: bold");
}
}
}
};
}
});
问题是,如果我已经通过显示表时将某些产品的状态更改为可用来更新模型(可观察列表),则该行不会更改其样式!你能帮我吗?