Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Associazione menuitemes + items actionListener con ciclo for

    salve gente, vorrei associare degli items menu e dei actionListenes con un uniclo ciclo.
    In questo modo aggiungo gli items...

    String[] azioniItems = new String[] {"Disconnetti", "Esci"};

    for (int i=0; i<azioniItems.length ; i++){
    JMenuItem item = new JMenuItem(azioniItems[i]);
    Azioni.add(item);
    }

    Ora quello che vorrei fare è quello di associare agli items gli actionListener corrispondenti.
    Gli actionListener precedentemente definiti hanno lo stesso nome delle voci di menu es:

    ActionListener Disconnetti = new ActionListener(){

    public void actionPerformed(ActionEvent e) {
    ........

    }
    Ho provato a fare una cosa tipo questo dentro il for:
    item.addActionListener( azioniItems[i]);
    ho provato anche
    item.addActionListener( (abstractButton) azioniItems[i]);
    ma niente...
    Come posso risolvere.
    Grazie a tutti Piccolognu

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

    Re: Associazione menuitemes + items actionListener con ciclo for

    Originariamente inviato da piccolognu
    Ora quello che vorrei fare è quello di associare agli items gli actionListener corrispondenti.
    Gli actionListener precedentemente definiti hanno lo stesso nome delle voci di menu
    Puoi fare un array anche per gli ActionListener:

    codice:
    String[] azioniItems = {"Disconnetti", "Esci"};
    ActionListener[] listeners = { Disconnetti, Esci };
    
    for (int i=0; i<azioniItems.length; i++) {
        JMenuItem item = new JMenuItem(azioniItems[i]);
        ....
        item.addActionListener(listeners[i]);
    }
    Ma se usassi le Action (vedi AbstractAction), sarebbe ancora meglio!

    Perché potresti fare:

    codice:
    Action disconnetti = new AbstractAction("Disconnetti") {
        public void actionPerformed(ActionEvent e) { ....... }
    };
    
    Action esci = new AbstractAction("Esci") {
        public void actionPerformed(ActionEvent e) { ....... }
    };
    
    Action[] actions = { disconnetti, esci };
    
    for (int i=0; i<actions.length; i++) {
        JMenuItem item = new JMenuItem(actions[i]);
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ok grazie..funziona benissimo :-)

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.