Salve.Vorrei un consiglio.Ho realizzato una JToolBar con Jbutton a cui sono associati un ImageIcon.Adesso voglio far in modo da ricoscere in un actionPerformed quale Jbutton è stato premuto.Come posso fare?
Salve.Vorrei un consiglio.Ho realizzato una JToolBar con Jbutton a cui sono associati un ImageIcon.Adesso voglio far in modo da ricoscere in un actionPerformed quale Jbutton è stato premuto.Come posso fare?
Quindi lo stesso identico listener l'hai registrato su più JButton???Originariamente inviato da tcc
Salve.Vorrei un consiglio.Ho realizzato una JToolBar con Jbutton a cui sono associati un ImageIcon.Adesso voglio far in modo da ricoscere in un actionPerformed quale Jbutton è stato premuto.Come posso fare?
È sempre la stessa solfa .... o confronti il reference fornito da getSource() dell'evento con i reference dei pulsanti (ammesso che ti sei tenuto i reference ai JButton da qualche parte, es. in variabil di istanza) oppure sfrutti l' "action command" (vedi getActionCommand() di ActionEvent e setActionCommand() di JButton. Imposti un action command particolare per ogni pulsante e poi li confronti con quello fornito da ActionEvent.
Comunque non sei certo obbligato ad usare un unico ActionListener per tutti i JButton. Puoi registrare un listener a sé stante (es. come inner class) per ogni JButton ma potresti anche usare le Action (estensioni di AbstractAction).
Insomma ... ci sono una marea di modi per gestire gli eventi.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ho un solo actionListener.Nei Jbutton utilizzati facevo ad esempio :
JButton jbutton = new JButton("Mia prova").
Quindi per controllare il Jbutton che aveva generato l'evento io faccio :
Adesso però adesso del testo sul Jbuttonc'è un ImageIcon come posso gestirlo?codice:public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("Mia prova")){ //Codice da eseguire } }
Mi sembrava di averlo spiegato prima .....Originariamente inviato da tcc
Adesso però adesso del testo sul Jbuttonc'è un ImageIcon come posso gestirlo?
Possibilità 1)
Possibilità 2)codice:private JButton button1; private JButton button2; .... public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == button1) { ... } else if (source == button2) { ... } }
Ho usato una costante ma solamente per praticità. Puoi anche ripetere la stringa literal ma se per caso sbagli a scrivere ... beh, non funziona più.codice:private static final String COMANDO_1 = "quelloCheTiPare1"; private static final String COMANDO_2 = "quelloCheTiPare2"; private JButton button1; private JButton button2; .... button1 = new JButton(.....); button1.setActionCommand(COMANDO_1); button2 = new JButton(.....); button2.setActionCommand(COMANDO_2); .... public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command == COMANDO_1) { ... } else if (command == COMANDO_2) { ... } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet