У меня есть следующий код 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
}
})
}
}
}
optionsmap
- карта с (id, text) парами, которые могут быть расширены.
Когда я нажимаю показывать значения Я получаю сообщение об ошибке:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: невозможно
приведение объекта 'foo' с классом 'java.lang.String' к классу
'Java.lang.Class'
Как я могу получить доступ к флажкам для своих действий на второй панели, используя идентификаторы флажков optionsmap
?