如何在表中显示属性的属性 - Java

时间:2017-03-12 01:38:45

标签: java jpa

我试图在一个表格中显示我的数据,一个属性"模型"我希望在表格中显示属性,下面是尝试

public void drawTable() throws Exception{

   try{
   List<PartsItem> ava = dm.getItemRepository().getAvailable();
   ItemSerial.setCellValueFactory(new PropertyValueFactory<Item, String>("serialNumber"));
   ModelName.setCellValueFactory(new PropertyValueFactory<Item, String>("model"));
   ObservableList<PartsItem> avai1 = FXCollections.observableArrayList(ava);       
   Available_DisplayTable.setItems(avai1); 
   }
   catch (Exception ex) {
       Logger.getLogger(PartsController.class.getName()).log(Level.SEVERE, null, ex);
   }

&#34;模型&#34;属性是Model类型,在Model I中有String的名称和getters。

public class Model {
@Column
private int id;

@Id
private String name;

@OneToMany(fetch=FetchType.LAZY)
private List<Item> item;

public Model(){}

public Model(int id, String name, List<Item> item){
    this.id=id;
    this.name=name;
    this.item = item;
}
....


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

所以我的问题是如何在表格列中显示附加的模型名称&#34; ModelName&#34;

编辑:我尝试了#34; this.model.getName()&#34;作为尝试,但这也没有用,我想显示名称和ID,如果可能的话

1 个答案:

答案 0 :(得分:1)

new PropertyValueFactory<Item, String>("model")将在您的modelProperty课程中查找名为Model的方法。使用StringProperty,以便TableView可以识别更改。 你可以尝试

private StringProperty model;


public Model(int id, String name, List<Item> item){
    this.id=id;
    this.name=name;
    this.item = item;
    model = new StringProperty(getName()+" "+getId());
}

public void setName(String name) {
    this.name = name;
    model.set(getName()+" "+getId());
}

public StringProperty modelProperty() {
    return new StringProperty(getName()+" "+getId);
}

我不能自己测试它希望这有帮助