RosettaCodeData/Task/Simple-windowed-application/Groovy/simple-windowed-application...

17 lines
448 B
Groovy

import groovy.swing.SwingBuilder
import groovy.beans.Bindable
@Bindable class Model {
Integer count = 0
}
model = new Model()
new SwingBuilder().edt {
frame(title:'Click frame', pack: true, show: true) {
vbox {
label(text: bind(source: model, sourceProperty: 'count',
converter: { v -> !v ? "There have been no clicks yet." : "Clicked ${v} time(s)."}))
button('Click Me', actionPerformed: {model.count++})
}
}
}