Soluzione certamente fattibile ma ... scomoda e noiosa. E se uno vuole cambiare il nome al pulsante?? Deve "ricordarsi" di cambiarlo sia nel punto della creazione che nell'actionPerformed. E se il testo del pulsante fosse stato generato dinamicamente o comunque non noto a priori, "localizzato" o altro??Originariamente inviato da LeleFT
Per il secondo puoi agire, anche qui, in modi diversi. Ad esempio, puoi utilizzare il metodo getLabel() per distinguerli:
codice:public void actionPerformed(ActionEvent ae) { JButton jb = (JButton) ae.getSource(); if ( jb.getLabel().equals("Pulsante 1") ) { ... // Fai qualcosa } if ( jb.getLabel().equals("Pulsante 2") ) { ... // Fai qualcosa altro } ... }
Meglio, secondo me, fare un banale test sui reference dei JButton:
codice:private JButton button1; private JButton button2; ... public void actionPerformed(ActionEvent ae) { Object objSrc = ae.getSource(); if (objSrc == button1) { .... } else if (objSrc == button2) { .... } }Soluzione interessante. Però bisogna valutare se vale la pena oppure no. Se i pulsanti sono pochi la eviterei (a favore del test dei reference). Sarebbe invece utile in caso di molti pulsanti o se i pulsanti devono avere delle "proprietà" aggiuntive particolari.Originariamente inviato da LeleFT
Oppure puoi scrivere una classe che estende JButton che preveda un metodo per distinguerli, ad esempio nu intero (così si può usare lo switch() ):

Rispondi quotando