Ho due JButtons
chiamati "Left" e "Right". Il pulsante "Sinistra" sposta un oggetto rettangolo verso sinistra e il pulsante "Destra" lo sposta verso destra. Ho uno ActionListener
nella classe che funge da ascoltatore quando si fa clic su uno dei due pulsanti. Tuttavia, desidero che vengano eseguite azioni diverse quando si fa clic su ciascuna di esse. Come faccio a distinguere, nello ActionListener
, tra il quale è stato fatto clic?Un listener di azioni, due JButtons
risposta
Set actionCommand a ciascuno del pulsante.
// Imposta i comandi di azione su entrambi i pulsanti.
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch(action) {
case 1:
//doSomething
break;
case 2:
// doSomething;
break;
}
}
UPDATE:
public class JBtnExample {
public static void main(String[] args) {
JButton btnOne = new JButton();
JButton btnTwo = new JButton();
ActionClass actionEvent = new ActionClass();
btnOne.addActionListener(actionEvent);
btnTwo.addActionListener(actionEvent);
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
}
}
class ActionClass implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch (action) {
case 1:
// DOSomething
break;
case 2:
// DOSomething
break;
default:
break;
}
}
}
Penso che questo sia più elegante in generale. Grazie! – CodyBugstein
Solo un secondo, richiede che ActionListener si trovi nella stessa classe? – CodyBugstein
Definire una classe ActionListener. Dichiarare un oggetto della classe action nella classe UI. Imposta ogni pulsante actionListener usando il metodo addActionListener e aggiungi questo riferimento alla classe action come param e infine imposta il comando action a ciascuno di essi. – Amarnath
Abbastanza facile con il metodo getSource()
disposizione ActionEvent
:
JButton leftButton, rightButton;
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == leftButton) {
}
else if (src == rightButton) {
}
}
- 1. Listener di azioni Java
- 2. Differenza tra listener del mouse e listener di azioni?
- 3. Avvia un gioco dall'interno di un listener di azioni
- 4. Listener di azioni su un pulsante di opzione
- 5. Imposta listener di azioni in modo programmatico in IOS
- 6. Stop a swing Timer dall'interno del Listener di azioni
- 7. Come creare una scacchiera di JButtons
- 8. - Due controller o aggiunta di azioni?
- 9. Crea 2 JButtons Uguale nella dimensione
- 10. Il listener del clic chiamato due volte
- 11. aggiungi listener vs set listener
- 12. Java: utilizzo di un listener di azioni per chiamare una funzione in un'altra classe su un oggetto di quella classe
- 13. come implementare un listener di clic lungo su un listview
- 14. Qual è la differenza tra un listener di classe e un listener di istanze in WPF?
- 15. Entity valid listener listener
- 16. Perché i pulsanti hanno listener di azioni e comandi non in LWUIT?
- 17. listener di azioni su JDialog per il pulsante su cui è stato fatto clic
- 18. Listener di animazione per animazione personalizzata
- 19. Ridimensionamento JButtons e altri componenti in base al testo
- 20. Come disabilitare temporaneamente un listener di messaggi
- 21. C'è un listener di chiamate perse
- 22. aggiunta di più listener di eventi a un elemento
- 23. NHibernate listener di eventi
- 24. AlertDialog MultiChoiceItems Problemi di listener
- 25. Symfony2 listener di eventi
- 26. Come posso evitare AmbiguousMatchException tra due azioni del controller?
- 27. jQuery: l'aggiunta di un listener di eventi sovrascrive il listener precedente dello stesso evento?
- 28. Un modulo con due pulsanti di invio e diverse azioni per ciascun pulsante
- 29. Aggiunta di un listener di eventi a un iframe
- 30. Separazione di un listener jQuery da un sottoinsieme di elementi
possibile duplicato di [? Java - gestire più eventi con una funzione] (http://stackoverflow.com/questions/501533/java-handle-multiple- events-with-one-function) –