Is it possible that, for example, a JButton
calls actionPerformed()
of an ActionListener
attached to it while the button itself is hidden or has been disabled?
Like, the user clicks the button, an event gets added to the Event Queue, and in a previous event the button gets disabled.
I'd think that this would not lead to an actionPerformed()
, because the user merely submitted a click- or press-event that checks all this stuff in the current JFrame
.
But does anybody know if there is any case where such an unwanted situation happens? Of course, always provided that you don't do anything with Swing objects outside of the EDT.
Edit for anyone looking at this: Yes, it can indeed happen under certain circumstances. I should post an example as an answer at some point.
From the JavaDocs
public void setEnabled(boolean enabled)
Sets whether or not this component is enabled. A component that is enabled may respond to user input, while a component that is not enabled cannot respond to user input. Some components may alter their visual representation when they are disabled in order to provide feedback to the user that they cannot take input.
For more info
http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setEnabled%28boolean%29
INFO : JButton extends AbstractButton which extends JComponent