Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Combobox 更新Griffon JavaFX组合框_Combobox_Javafx_Griffon - Fatal编程技术网

Combobox 更新Griffon JavaFX组合框

Combobox 更新Griffon JavaFX组合框,combobox,javafx,griffon,Combobox,Javafx,Griffon,我正在尝试更新组合框的内容(使用Griffon1.2.0和JavaFX插件) 我的模型: class MyModel { List monthList = FXCollections.observableList([new DateMidnight()]) def convertDate = [ fromString: { String s -> return new DateMidnight(DateTimeFor

我正在尝试更新组合框的内容(使用Griffon1.2.0和JavaFX插件)

我的模型:

class MyModel {
    List monthList = FXCollections.observableList([new DateMidnight()])

    def convertDate = [
            fromString: { String s ->
                return new DateMidnight(DateTimeFormat.forPattern("yyyy-MM").parseDateTime(s))
            },
            toString: { DateMidnight d ->
                return "2011-10"
            }
    ] as StringConverter
}
我的观点包括:

comboBox(items: (model.monthList), converter: model.convertDate)
现在我有一个控制器动作,当他们按下按钮时会被调用:

def load = {
        execInsideUIAsync {
            def months = myService.buildMonthList()
            model.monthList.addAll(months)
        }
} 
问题是组合框的内容永远不会改变。谁能帮我理解我错过了什么

ComboBox上还没有文档


另外,我是否正确地实现了转换器?

问题是GroovyFX.comboBox创建了一个新列表,而不是使用您传递的列表作为项的参数:tableView也会出现这个问题。临时解决方法是直接设置items属性,如下所示

 comboBox(id: 'combo')
 noparent { combo.items = model.monthList }

不幸的是,这对我不起作用。我已经定义了我的combobox:combobox(id:'months',converter:model.convertDate),然后使用noparent块:noparent{months.items=model.monthList,然后在我的控制器中更新model model.monthList.clear()model.monthList.addAll(months)但是视图从未改变。我能够操作组合框的唯一方法是直接访问view.months.items并直接清除/填充它。不理想。嗯,这可能是线程问题吗?我使用Griffon 1.2.0和groovyfx/javafx 0.8运行代码。有关详细信息,请参阅。指南也详细描述了@threading。嘿,我创建了一个新的应用程序来尝试您的示例,它运行良好。但我仍然无法在现有应用程序中使其正常工作。当我有时间时,我将尝试使其正常工作。感谢您的帮助。