Java: disabilitare un'azione dovrebbe disabilitare JButtons e JMenuuitems
Domanda
Sto scrivendo un IDE abbastanza semplice per lo sviluppo di programmi incorporati (per la piattaforma di creazione di Irobot) e quasi ogni singolo pulsante e voce di menu sono supportate dal sistema di azione di Java. Ciò ha reso più semplice la gestione di tutte le operazioni che l'utente vorrà senza duplicare il trigger di un'operazione.
Quello che vorrei sapere è: come disabilito i jbutton e i jmenuithem creati da un'azione disabilitando l'azione stessa?
Nel caso in cui sia d'aiuto, ho scritto una classe di wrapping che mi permetta di creare facilmente un JButton o JMenuuitem direttamente dall'azione stessa, il che significa che ho già ganci in atto per aggiungere cose ai pulsanti o alle voci di menu in caso di necessità presentarsi.
Eventuali suggerimenti?
Soluzione
Risposta breve:
anAction.setEnabled( false );
Risposta più breve:
http://ssce.org/
Altri suggerimenti
Puoi archiviare tutti i pulsanti e menuuitms a List<AbstractButton> buttons
E aggiungi l'ascoltatore all'azione:
action.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("enabled")) {
boolean isEnabled = (Boolean)evt.getNewValue();
for (AbstractButton button : buttons) {
button.setEnabled(isEnabled);
}
}
}
});