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

    [java]problema JPopupMenu con submenu (JMenu)

    salve ho il seguente problema :

    se creo un JPopupMenu con all'interno un jmenu che a sua volta contiene un JMenuItem
    il JMenuItem i questione non mi vede gli ActionEvent cioè se ci clicco sopra non succede nulla
    anche se gli ho associato un action listener fatto a puntino che mi dovrebbe visualizzare una semplice finestra;
    ma se invece questo stesso JMenuItem lo aggiungo direttamente al JPopupMenu va tutto a meraviglia....
    come mai ????

    ecco un codice di esempio riasuntivo


    JPopupMenu pm = new JPopupMenu();
    ...
    JMenu submenu = new JMenu("submenu");
    JMenuItem jmi = new JMenuItem(...);
    submenu.add(jmi);
    ...
    pm.add(submenu);

    aiutoooooooooooooooooooooooooooooooooooooooooooooo oooo
    fra la teoria e la pratica teoricamente non c'è differenza ma praticamente si

  2. #2
    mmamia nessuno mi aiuta

    a nessuno è capitata una cosa simile ???

    per domande o altro sono a vostra disposizione
    fra la teoria e la pratica teoricamente non c'è differenza ma praticamente si

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    Ciao allora prova in questo modo

    JPopupMenu pm = new JPopupMenu();
    ...
    JMenu submenu = new JMenu("submenu");
    JMenuItem jmi = new JMenuItem(...);
    jmi.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    //Apri la finestra
    }
    });

    submenu.add(jmi);
    ...
    pm.add(submenu);

  4. #4
    Io ho un problema a riguardo.
    Ho la seguente classe trovata sul sito della sun (se non ricordo male):

    private class PopupMenuTest extends Applet implements ActionListener {

    PopupMenu popup;

    public void init() {
    MenuItem mi;

    popup = new PopupMenu("Edit");

    mi = new MenuItem("Condividi");
    mi.addActionListener(this);
    popup.add(mi);

    mi = new MenuItem("Modifica");
    mi.addActionListener(this);
    popup.add(mi);

    popup.addSeparator();

    mi = new MenuItem("Riferisci");
    mi.addActionListener(this);
    popup.add(mi);

    add(popup); // add popup menu to applet

    enableEvents(AWTEvent.MOUSE_EVENT_MASK);

    resize(200, 200);
    }

    public void processMouseEvent(MouseEvent e) {

    if (e.isPopupTrigger()) {
    popup.show(e.getComponent(), e.getX(), e.getY());
    }
    super.processMouseEvent(e);
    }

    public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();

    if (command.equals("Condividi")) {
    System.out.println("Condividi");
    } else if (command.equals("Modifica")) {
    System.out.println("Modifica");
    } else if (command.equals("Riferisci")) {
    System.out.println("Riferisci");
    }
    }
    }


    Crea un menu popup alla pressione del tasto destro del mouse con relativa gestione dell'evento.

    A me serve applicare questa classe (che è un ActionListener) ad una JLabel, ma...niente da fare. Non ci riesco :/

    Suggerimenti?

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.