Listener di azioni Java

0

In realtà, ho una confusione in Java durante l'implementazione dell'evento listener di azioni. Posso aggiungere eventi listener di azioni implementando la classe con ActionListener e

someButton.addActionListener(this);

Ma, sono venuto a sapere che anche questo fa la stessa cosa.

someButton.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent evt) {
              //some code...
            }
 });

Ma non potevo capirlo. Non possiamo usare nuovo su un'interfaccia ma lo utilizza. Ottengo un errore se uso semplicemente provare a creare un'istanza dell'oggetto usando nuovo solo ciò che mi aspettavo, ma funziona quando creo un blocco utilizzando le parentesi {} . Qualcuno potrebbe spiegarlo per favore.

    
posta Sagaryal 29.05.2015 - 19:44
fonte

1 risposta

3

Il secondo costrutto che usi è chiamato una classe anonima .

È sia una dichiarazione che un'istanza di una classe allo stesso tempo. Sebbene ActionListener sia un'interfaccia, stai creando una nuova istanza di una classe che implementa quell'interfaccia e fornisce un'implementazione dei suoi metodi (in questo caso, c'è solo un metodo nell'interfaccia) e poi lo fornisce alla% metodoaddActionListener().

    
risposta data 29.05.2015 - 19:49
fonte

Leggi altre domande sui tag