|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2004
Città: Messina
Messaggi: 684
|
Java - Per sapere da dove proviene un evento
Ciao a tutti,
ho un dubbio in merito alla classe ActionEvent della quale ho visto i metodi nel javadoc... Come è possibile sapere da quale pulsante proviene un click, se ho due pulsanti che si chiamano allo stesso modo ? E' possibile disambiguare e sapere da quale JPanel proviene ? Ho visto anche la classe MouseAdapter e MouseEvent non contiene nulla a riguardo... Cioè spero che la differenziazione non debba farla tramite le coordinate del click, troppo squallido... |
![]() |
![]() |
![]() |
#2 | |||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
private JButton btn1; private JButton btn2; ... ... void actionPerformed (ActionEvent e) { Object src = e.getSource (); if (src == btn1) { ..... } else if (src == btn2) { ..... } } Quote:
Se è così, usa getParent() per sapere quale è il contenitore che contiene il pulsante. Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 08-02-2007 alle 08:35. |
|||
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
oppure, se vuoi, puoi implementare l'azione del pulsante direttamente, in poche parole una cosa del genere:
Codice:
private JButton pulsante=new JButton("TESTO"); pulsante.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { //FAI LE OPERAZIONI CHE DEVE FARE IL PULSANTE } ![]()
__________________
My gaming placement |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2004
Città: Messina
Messaggi: 684
|
Quote:
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 ![]() 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 ![]() |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2004
Città: Messina
Messaggi: 684
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
![]()
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
public class Interf1 extends JFrame { JButton btn1; JButton btn2; ....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:01.