繁体   English   中英

组合框setValue JavaFX

[英]Combo box setValue JavaFX

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

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,它只是没有更新用户界面。

挥杆重画有什么等效的东西吗?

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

businessDateComboBox.getSelectionModel().select(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM