Programmation Java Swing/Actions
Une action permet de préconfigurer plusieurs propriétés.
Quand un composant (JRadiobutton, JButton, JMenuItem, ...) est lié à une action, ses propriétés suivent l'évolution de celles de l'action.
Notamment, cela permet de désactiver/activer une action, de configurer un listener d'action (ActionListener
) une seule fois.
Cela est pratique quand une même action est disponible à la fois dans un menu et par un bouton, par exemple.
Exemple pour une action de menu, ou de bouton :
// Création d'une action
// Convention : a_ pour action
Action a_ouvrir = new AbstractAction("Ouvrir un fichier...")
{
@Override
public void actionPerformed(ActionEvent e)
{
menuOuvrir();
}
};
a_ouvrir.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK)); // Ctrl-O
// Action ajoutée au menu fichier :
JMenu m = new JMenu("Fichier"); // Fichier :
m.add(new JMenuItem(a_ouvrir)); // - Ouvrir
// Et aussi pour un bouton directement dans la fenêtre :
JButton b_ouvrir = new JButton(a_ouvrir);
a_ouvrir.setEnabled(false); // --> désactive à la fois le menu et le bouton en un appel