我有一个组合框,并且我在初始化节点时设置了这个组合框的默认值。但是,一旦从数据库中检索到一些数据,我希望将此默认值更新为其他值。
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和包含initialise方法的FXML的相应控制器来做到这一点-目前initialise方法再次运行,但用户界面没有更新为最新的值。有人知道为什么吗?
用户界面的组合框中的默认值现在应该是56,因为我设置了它。当我打印businessDateComboBox.getValue()时,它返回56,只是没有更新用户界面。
有没有类似于swing重绘之类的东西?
发布于 2015-01-08 20:10:45
businessDateComboBox.setValue用于可编辑ComboBox的编辑组件。我猜你的不是,所以正确的方法应该是通过SelectionModel
businessDateComboBox.getSelectionModel().select(...)https://stackoverflow.com/questions/27839749
复制相似问题