According to this post, action buttons can be enabled or disabled by the action itself, in the actionPerformed() method.
Now, suppose I disable a button this way. So, I could only re-enable it the same way, i.e., when the action is performed. But if the button is disabled, the action will never be performed again. It seems we have a deadlock: to enable the button, I need to perform the action, but to perform the action, I need to enable the button.
What am I missing here?