Model view controller Groovy:如何使用Id标记访问对象?
我有以下Groovy+SwingBuilder代码 在一个面板中,我生成复选框,在另一个面板中,我希望访问复选框的值。代码基本上如下所示:Model view controller Groovy:如何使用Id标记访问对象?,model-view-controller,groovy,Model View Controller,Groovy,我有以下Groovy+SwingBuilder代码 在一个面板中,我生成复选框,在另一个面板中,我希望访问复选框的值。代码基本上如下所示: def optionsmap = [ foo : "value_foo", bar : "value_bar"] SwingBuilder.build() { frame(title:'demo1', size:[400,700], visible:true, defaultCloseOperation:WC.EXIT_ON_CLOSE)
def optionsmap = [ foo : "value_foo", bar : "value_bar"]
SwingBuilder.build()
{
frame(title:'demo1', size:[400,700], visible:true, defaultCloseOperation:WC.EXIT_ON_CLOSE) {
gridLayout(rows: 1, cols: 2)
panel(id:'optionPanel', constraints:java.awt.BorderLayout.CENTER) {
gridLayout(rows: 5, cols: 1)
myGroup = buttonGroup();
for (entry in optionsmap)
{
checkBox(id: entry.key, text: entry.value )
}
}
panel(constraints:java.awt.BorderLayout.WEST) {
button ('Show values', actionPerformed: {
for (entry in optionsmap)
{
println (entry.key as Class).text
}
})
}
}
}
options映射
是一个具有(id、文本)对的映射,可以扩展
当我按show values时,会收到一条错误消息:
org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法
将类为“java.lang.String”的对象“foo”强制转换为类
“java.lang.Class”
如何使用
选项映射中的复选框ID访问第二个面板中的操作复选框?从映射中访问变量的解决方案如下:
for (entry in optionsmap)
{
if (variables[entry.key].selected)
println variables[entry.key].text
}
你说的“不起作用”到底是什么意思?它会崩溃吗?它是否只输出被检查的内容?它们都是未选中的吗?您如何以上一个面板的形式绑定数据?请更完整一些。