首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合框setValue JavaFX

组合框setValue JavaFX
EN

Stack Overflow用户
提问于 2015-01-08 20:04:43
回答 1查看 2.7K关注 0票数 0

我有一个组合框,并且我在初始化节点时设置了这个组合框的默认值。但是,一旦从数据库中检索到一些数据,我希望将此默认值更新为其他值。

代码语言:javascript
复制
initialise() {
businessDateComboBox.setItems(config.retrievedPositionsData().getDistinctBusinssDate()); 
businessDateComboBox.setValue(config.retrievedPositionsData().getCurrentBusinessDate().toString());
}

setItems是一个ObservableList,setValue是一个ObservableList,但我将其转换为字符串。

现在,我使用一个单独的线程从数据库中检索项。

代码语言:javascript
复制
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重绘之类的东西?

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 20:10:45

businessDateComboBox.setValue用于可编辑ComboBox的编辑组件。我猜你的不是,所以正确的方法应该是通过SelectionModel

代码语言:javascript
复制
businessDateComboBox.getSelectionModel().select(...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27839749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档