Groovy is scripting language on the Java platform. Groovy is interesting because it can be compiled into Java byte-code and makes heavy use of closures.
Groovy Hello World
In the beginning, I ported my Jython version into Groovy. It looks pretty much the same as the Jython version:
// Hello World in Groovy f = new javax.swing.JFrame("Hello World") f.setSize(170,70) f.contentPane.layout = new java.awt.FlowLayout() f.defaultCloseOperation = javax.swing.JFrame.EXIT_ON_CLOSE f.add(new javax.swing.JLabel("Label me:")) f.add(new javax.swing.JButton("Press me")) f.show()
Groovy + SwingBuilder Hello World
Groovy has a helper class called SwingBuilder to make it much easier to write Swing applications. Here's one way to re-write the program:
// Hello World Window in Groovy + SwingBuilder sb = new groovy.swing.SwingBuilder() f = sb.frame( title:"Hello World" ,size:[170,70] ,defaultCloseOperation: javax.swing.JFrame.EXIT_ON_CLOSE) { flowLayout() label(text:"Label me:") button(text:"Press me") } f.show()
SwingBuilder is quite wonderful because it allows you to define a GUI with a minimum of code noise
. The definition of a JFrame probably maps a keyword X to a setX() function but I haven't worked out how SwingBuilder converts words such as flowLayout()
, label
and button
to Swing objects and functions.
No comments:
Post a Comment