2014-02-14 85 views
0

是否可以使用相對StringProperty創建動態ObservableList?Java創建動態ObservableList

例如,使用下面的代碼,如何動態重新創建它並在必要時添加新的StringProperty?

private final ObservableList<Record> recordList = FXCollections.observableArrayList(); 

public static class Record { 

    private static int trackId; 
    private final SimpleIntegerProperty id; 
    private final SimpleStringProperty name; 
    private final SimpleStringProperty lastName; 
    private final SimpleStringProperty email; 

    private Record(String name, String lastName, String email) { 

     this.id = new SimpleIntegerProperty(trackId); 
     this.name = new SimpleStringProperty(name); 
     this.lastName = new SimpleStringProperty(lastName); 
     this.email = new SimpleStringProperty(email); 
     trackId++; 
    } 

    public int getId() { 
     return this.id.get(); 
    } 

    public void setId(int id) { 
     this.id.set(id); 
    } 

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

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

    public String getLastName() { 
     return this.lastName.get(); 
    } 

    public void setLastName(String lastName) { 
     this.lastName.set(lastName); 
    } 

    public String getEmail() { 
     return this.email.get(); 
    } 

    public void setEmail(String email) { 
     this.email.set(email); 
    } 
} 
+1

這是什麼API? – qqilihq

回答

0

即使將使​​用反射,也無法向類中添加字段。也許更好地改變建築?讓我們來看下一節課:

class Property <T> { 
    private final T propertyValue; 
    private final String propertyName; 

    public Property (String name, T value) { 
     this.propertyName = name; 
     this.propertyValue = value; 
    } 

    public T getValue(){ 
     return propertyValue; 
    } 

    public String getName(){ 
     return propertyName; 
    } 
} 

這個類可以幫助你創建新的屬性並存儲它。現在,您可以創建屬性列表並將其存儲在類Record中。現在你可以動態地添加新的屬性。我認爲這更靈活。