Is there anyway to avoid the stateChange event being fired more than one time when the toggleButton is clicked? Or am I using the wrong event handler? It gets called 5 times for every toggle.
#!/usr/bin/env groovy
import groovy.swing.SwingBuilder
import static javax.swing.JFrame.EXIT_ON_CLOSE
def swing = new SwingBuilder()
swing.edt {
    lookAndFeel 'nimbus'
    frame(title                : "Throttle",
          pack                 : true,
          show                 : true,
          defaultCloseOperation: EXIT_ON_CLOSE,
          id                   : "frame" ) {
        boxLayout()
        toggleButton(text: 'fl',
                     selected       : false,
                     rolloverEnabled: false,
                     toolTipText    : 'f1',
                     stateChanged   : { e ->
                         println e.source
                     })
    }
}
swing.doLater { frame.size = [128, 320] }
				
                        
I switched to from stateChanged to actionPerformed then it worked as what I expected. Not sure why I used stateChanged in the first place!