更新Griffon JavaFX组合框

时间:2013-02-23 06:00:07

标签: combobox javafx griffon

我正在尝试更新组合框的内容(使用Griffon 1.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的文档http://groovyfx.org/docs/guide/single.html#choiceBoxComboBox

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

1 个答案:

答案 0 :(得分:0)

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

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