我有这堂课:
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中的选定值?