我有一个组合框,我在节点初始化时为此组合框设置了默认值。但是,一旦从数据库中检索到某些数据,我想将此默认值更新为其他内容。
initialise() {
businessDateComboBox.setItems(config.retrievedPositionsData().getDistinctBusinssDate());
businessDateComboBox.setValue(config.retrievedPositionsData().getCurrentBusinessDate().toString());
}
setItems是一个ObservableList,而setValue是一个ObservableList,但我把它转换为字符串。
现在我使用一个单独的线程从数据库中检索项目。
public void readPositionsFromDataBase() throws Exception {
Task<Integer> task = new Task<Integer>() {
@Override protected Integer call() throws Exception {
config.positionViewPersister().readDataFromDataBase(null,null);
return 0;
}
};
Thread th = new Thread(task);
th.setDaemon(true);
th.start();
config.retrievedPositionsData().setCurrentBusinessDate("56")
}
一旦完成,我想要使用为默认组合框值检索的最新值更新用户界面。我通过重新加载FXML和由初始化方法组成的FXML的相应控制器来执行此操作 - 当前初始化方法再次运行但用户界面未使用最新值进行更新。有谁知道为什么?
用户界面中组合框中的默认值现在应该是56,因为我设置它。当我打印businessDateComboBox.getValue()时,它给出56它只是不更新用户界面。
是否有任何等效的挥杆重绘或什么?
答案 0 :(得分:0)
businessDateComboBox.setValue
适用于可编辑ComboBox
的编辑组件。我想你的不是,所以正确的方法应该通过SelectionModel
:
businessDateComboBox.getSelectionModel().select(...)