Is it better to disable a button or hide it?
Buttons. Disable the control to indicate that the user needs to do something first to “unlock” the functionality that this button performs. Buttons should never be hidden, because there is an expectation of persistence for them.
How do I disable menu items?
The MenuItem class contains a property named visible (boolean), which specifies whether to display the current MenuItem. You can set the value to this property using the setVisible() method. To disable a particular menu item invoke the setVisible() method on its object by passing the boolean value “false”.