That is weird. If you’re doing all this in the Designer, maybe try restarting it. I also just verified the button in my example definitely won’t run the code I put in it when it is disabled. There is another issue with this method; the button doesn’t get enabled/disabled unless enter is pressed or mouse clicks elsewhere after entering/removing text in a field. This could be resolved by scripting focus on something else on mouse exit of the text fields.
A different method–and the one I’d generally use–would be to check for required values in the script that executes when you tap the button instead of disabling the button. If required values aren’t there, notify the user that they need to enter them. This would all be in the button’s actionPerformed event handler.
areaEntered = len(event.source.parent.getComponent('AreaSelected').text) > 0
shiftEntered = len(event.source.parent.getComponent('ShiftSelected').text) > 0
if areaEntered and shiftEntered:
# Do something.
# Notify user.