2017-03-12 6 views
0

私はテーブルに私のデータを表示しようとしていますが、一つの属性「モデル」は、私がテーブルに表示したい属性を持っている、以下の試み方法 - Javaの

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); 
    } 
です

"model"属性はModel型で、Model IではStringとgetterに名前があります。

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; 
} 

だから私の質問は、私はテーブルの列「のModelName」

EDITに付属のモデル名を表示しない方法です:私は試みとして「this.model.getNameを()」しようとしましたが、このてきました可能であれば名前とIDを表示したい

答えて

1

new PropertyValueFactory<Item, String>("model")modelPropertyという名前のメソッドをModelクラスで探します。 TableViewが変更を認識できるようにStringPropertyを使用してください。 あなたが

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); 
} 

を試すことができます私は自分自身でそれをテストカントこれは

+0

を役に立てば幸い私はあなたのアイデアを使用しますが、私は私Itemクラスに新しいプロパティを追加し、それがモデルデータを取得します。ありがとうございました – duldi