Home / Programmazione / Java / Implementare un ActionListener in Java
Mattepuffo

Implementare un ActionListener in Java

Implementare un ActionListener in Java

Se abbiamo diversi eventi impostati nel nostro JFrame, potrebbe valere la pena organizzarli meglio rispetto a quello che gli IDE fanno di default.

Oggi vediamo uno dei vari modi, usando un ActionListener personalizzato.

Supponiamo di avere due voci nel nostro menu, ai quali vogliamo agganciare determinati eventi.

Prima di tutto nel nostro JFrame creiamo una classe interna privata che implementa ActionListener:

    private class CustomActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent ev) {
            Object source = ev.getSource();
            if (source == itemAbout) {
                // DO ACTION
            } else if (source == itemEsc) {
                // DO ACTION
            }
        }
    }

Bene, a questo punto dobbiamo agganciare gli item agli eventi.

Dopo averli istanziati, nel costruttore del nostro JFrame:

public class MyFrame extends JFrame {

    private CustomActionListener cal;

     public MyFrame() {
        cal = new CustomActionListener();
        initComponents(); // NETBEANS CODE
        itemAbout.addActionListener(cal);
        itemEsc.addActionListener(cal);
    }

.............

}

Nulla di più.

In questo modo avremmo una migliore organizzazione del codice relativo agli eventi, senza il proliferare di codice simile (considerate che io di componenti neo ho una ventina).

Enjoy!