加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

将嵌套对象属性绑定到JavaFx中的TableView

发布时间:2020-12-15 00:50:30 所属栏目:Java 来源:网络整理
导读:我有下一堂课 public class ProductStockDto extends private Long id; private Long amount; private ProductDto product; private StockDto stock; //getters and setters...} 在JavaFx中我有我的表,我想将product.name属性绑定到列,就像这样. ObservableL
我有下一堂课
public class ProductStockDto extends 

    private Long id;
    private Long amount;
    private ProductDto product;
    private StockDto stock;

    //getters and setters...
}

在JavaFx中我有我的表,我想将product.name属性绑定到列,就像这样.

ObservableList<ProductStockDto> data = FXCollections.observableArrayList();
data.addAll(products);
nameColumn.setCellValueFactory(new PropertyValueFactory("product.name"));
productTable.setItems(data);

但是当我这样做时,TableView上的行显示为空白.

有人可以帮我这个吗?我想绑定嵌套对象属性,在Java Swing上就像是${product.name}

谢谢.

解决方法

Javafx不支持这种格式,作为一种解决方法,您可以尝试这样的方法:
nameColumn.setCellValueFactory(new Callback<CellDataFeatures<ProductStockDto,String>,ObservableValue<String>>() {  
    @Override  
    public ObservableValue<String> call(CellDataFeatures<ProductStockDto,String> data){  
         return data.getValue().getProducts().nameProperty();  
    }  
});

ProductDto将拥有的地方

public class ProductDto{

    private StringProperty name = new SimpleStringProperty("Itachi");

    public String getName() {
        return name.get();
    }

    public void setStreet(String name) {
        this.name.set(name);
    }

    public StringProperty nameProperty(){
        return name;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读