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

    [JAVA] - popup menu + listener

    ciao come faccio ad associare un listener ad un popup menu?
    cioè, se ho:

    codice:
    JPopupMenu popup = new JPopupMenu();
        JMenuItem item1 = new JMenuItem("Cancella la lista delle azioni");
        popup.add(item1);
        JMenuItem item2 = new JMenuItem("Esci");
        popup.add(item2);
    come faccio, ad esempio a cancellare una JTextArea premendo tasto destro->item1?

    ciao grazie

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Un modo è il seguente:

    Codice PHP:

    JPopupMenu popup 
    = new JPopupMenu();
    Action item1Action = new AbstractAction("Cancella la lista delle azioni"){ 
              public 
    void actionPerformed(ActionEvent e){
                  
    //operazioni da compiere quando si seleziona il menu
              
    }
            };
    popup.add(item1Action );

    Action item2Action = new AbstractAction("Esci"){ 
              public 
    void actionPerformed(ActionEvent e){
                  
    //operazioni da compiere quando si seleziona il menu
              
    }
            };
    popup.add(item2Action );

    //Lo stesso per le altre voci di menu 
    Quello che fa questo codice è creare un'istanza di una classe che implementa Action e che fa da listener degli item dei Menu (per la precisione di tratta di una classe anonima). In questo modo puoi associare la stessa azione anche a più elementi grafici; ad esempio se inserisci un bottone la cui funzione è la stessa del menu "Cancella", puoi semplicemente passare quell'azione al costruttore del bottone, senza duplicare codice:

    JButton button = new JButton(item1Action);

    Aggiungere un'azione al popup menu o costruire un bottone su un'azione registra automaticamente l'azione come un listener del menu o del bottone; tutto quello che devi fare è specificare il corpo del metodo actionPerformed.

    Ciao.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.