Home / Programmazione / Java / Impostare un popup menu su una JList
Mattepuffo

Impostare un popup menu su una JList

Impostare un popup menu su una JList

Se usiamo le JList, potremmo aver bisogno di impostare un popup menu al click con il testo destro del mouse.

Ad esempio per rimuovere una voce, o per modificarla.

Vediamo come implementare un JPopupMenu su una JList.

NB: non vediamo anche come riempirla, ma ci occupiamo solo del popup.

Questo il codice:

        myJList.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent me) {
                if (SwingUtilities.isRightMouseButton(me) && !myJList.isSelectionEmpty() && myJList.locationToIndex(me.getPoint()) == myJList.getSelectedIndex()) {
                    JPopupMenu popupMenu = new JPopupMenu();
                    JMenuItem ir = new JMenuItem("Cancella");
                    popupMenu.add(ir);
                    popupMenu.show(myJList, me.getX(), me.getY());
                    ir.addActionListener((ActionEvent ae) -> {
                        // DO STUFF
                    });
                }
            }
        });

In pratica impostiamo un MouseListener sulla JList, e controlliamo di aver effettivamente selezionato una voce, e di aver usato il tasto destro.

In questo caso, creiamo un JPopupMenu, aggiungiamo un JMenuItem, ed impostiamo un ActionListener.

Enjoy!