Groovy の SwingBuilder

Swing によるアプリケーションのための SwingBuilder が提供されている。
以下は簡単なサンプル。

import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
 
def swing = new SwingBuilder()
count = 0
def textlabel
def frame = swing.frame(title:'Frame', size:[300,300]) {
    borderLayout()
    textlabel = label(text:"Clicked ${count} time(s).", constraints: BL.NORTH)
    button(text:'Click Me',
        actionPerformed: {
            count++;
            textlabel.text = "Clicked ${count} time(s).";
            println "clicked"},
        constraints:BL.SOUTH)
}
frame.pack()
frame.show()