Model view controller Groovy:如何使用Id标记访问对象?

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)

我有以下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) {                
      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
         }

你说的“不起作用”到底是什么意思?它会崩溃吗?它是否只输出被检查的内容?它们都是未选中的吗?您如何以上一个面板的形式绑定数据?请更完整一些。