Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2014, 14:28
j4v1
 
Fecha de Ingreso: abril-2010
Mensajes: 78
Antigüedad: 14 años, 9 meses
Puntos: 0
JPopupMenu en JList no se muestra

Hola de nuevo

Estoy tratando de mostrar un menu al hacer click a los elementos de una lista, pero no lo consigo, creo que estoy haciendo algo mal

Pasteo el código para que lo veáis


Código:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;

public class MainClass {

private static JPopupMenu popup;
  
public static void main(final String args[]) {
    final String labels[] = { "A", "B", "C", "D", "E" };
    JFrame frame = new JFrame("JList");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JList jlist = new JList(labels);
    JScrollPane scrollPane1 = new JScrollPane(jlist);
    frame.add(scrollPane1);
    
    popup = new JPopupMenu();
    popup.add(new JMenuItem("uno"));
    popup.add(new JMenuItem("dos"));

    
    
    MouseListener mouseListener = new MouseAdapter() {

      
    	public void mousePressed(MouseEvent mouseEvent) {
      	  JList theList = (JList) mouseEvent.getSource(); 
      	  int index = theList.locationToIndex(mouseEvent.getPoint());
            if (index >= 0) {
              Object o = theList.getModel().getElementAt(index);
              if (mouseEvent.isPopupTrigger()) { 
                  popup.show(mouseEvent.getComponent(),
                		  mouseEvent.getX(), mouseEvent.getY());
              }
            }
        }

    };
    jlist.addMouseListener(mouseListener);

    frame.setSize(350, 200);
    frame.setVisible(true);
  }
}

Un saludo y gracias de antemano