JavaFX:检测ObservaleList的更新

时间:2014-05-16 16:36:56

标签: javafx observable

我有这堂课:

public class Protocol {
private final SimpleLongProperty id;
private final SimpleStringProperty name;

public Protocol(long id, String name){
    this.id = new SimpleLongProperty(id);
    this.name = new SimpleStringProperty(name);
}

public long getId(){
    return id.get();
}

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

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

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

那:

public class ProtocolService{
private long nextId = 0;
private final ObservableList<Protocol> protocols;

public ProtocolService(){
    protocols = FXCollections.observableArrayList(
        createProtocol("1"),
        createProtocol("2"),
        createProtocol("3"),
        createProtocol("4")
    );
}

private Protocol createProtocol(String name)
{
    Protocol protocol = new Protocol(nextId++, name);
    return protocol;
}

public void addProtocol(String name){
    protocols.add(createProtocol(name));
}

public ObservableList<Protocol> getData(){
    return protocols;
}    
}

我有一个Table和一个ComboBox从ProtocolService类获取数据:

tbl_protocol.setItems(protocolService.getData());
cbox_protocols.setItems(protocolService.getData());

当我更新(ADD或REMOVE ROW)表时,一切正常。 如果我在表上编辑一个元素,这是在ComboBox上选择的元素,则不刷新选定的值。 这个恕我直言,因为可观察列表没有列出内部元素的变化。 如何监听那些附加事件以更新ComboBox中的选定值?

0 个答案:

没有答案