View Single Post
Old 08-02-2007, 09:19   #4
Lakaj
Senior Member
 
L'Avatar di Lakaj
 
Iscritto dal: Oct 2004
Città: Messina
Messaggi: 684
Quote:
Originariamente inviato da andbin
Con il metodo getSource()
Codice:
private JButton btn1;
private JButton btn2;

...
...

void actionPerformed (ActionEvent e) {
    Object src = e.getSource ();

    if (src == btn1) {
        .....
    } else if (src == btn2) {
        .....
    }
}
Cioè tu ad esempio hai 2 JPanel e in ognuno hai un pulsante, a seguito dell'evento generato da un pulsante vuoi sapere da quale JPanel??
Se è così, usa getParent() per sapere quale è il contenitore che contiene il pulsante.

Le classi XXXAdapter sono semplicemente delle implementazioni "vuote" delle rispettive interfacce XXXListener. Se invece di implementare un XXXListener estendi da un XXXAdapter, devi fare l'override solo dei metodi che realmente ti servono e non di tutti.
Ah, giusto, che stupido sono...
Forse pero' ho un problema, poichè io ho una classe
public class Interf1 extends JFrame {
...
}
e quei btn1 e btn2 di cui parli tu sono la dentro e non sono visibili all'altra classe Evento che mi implementa ActionListener, nemmeno se li dichiaro 'protected' ,poichè il protected è riferito al package JFrame e non al mio...
Cioè in teoria la soluzione potrebbe essere passare tutti i 15 JButton al costruttore della classe Evento però il professore mi boccia...
Oppure costruire una classe involucro alla classe Interf1 in cui dichiarare tutto protected ...
Grazie franksiska, ma non mi piace allocare classi al 'volo' cioè anonime o come si chiamano...mhh..non lo so (devo studiare ) con le new , ma mi piace avere tutto schematizzato... cmq grazie..
Lakaj è offline   Rispondi citando il messaggio o parte di esso