Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313

    [JAVA]JToolBar e JButton

    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?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]JToolBar e 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?
    Quindi lo stesso identico listener l'hai registrato su più JButton???
    È 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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313
    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 :
    codice:
    public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals("Mia prova")){
              //Codice da eseguire
        }
    
    }
    Adesso però adesso del testo sul Jbuttonc'è un ImageIcon come posso gestirlo?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tcc
    Adesso però adesso del testo sul Jbuttonc'è un ImageIcon come posso gestirlo?
    Mi sembrava di averlo spiegato prima .....

    Possibilità 1)

    codice:
    private JButton button1;
    private JButton button2;
    ....
    
        public void actionPerformed(ActionEvent e) {
            Object source = e.getSource();
    
            if (source == button1) { ... }
            else if (source == button2) { ... }
        }
    Possibilità 2)

    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) { ... }
        }
    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ù.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.