import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;public class Test extends JApplet {    JList list;
    JPopupMenu menu;    public void init() {
        Container contentPane = getContentPane();
        Object[] items = { "item one", "item two", "item three", 
                        "item four", "item five", "item six",
                        "item seven", "item eight", 
                        "item nine", "item ten" };        list = new JList(items);
        JScrollPane sp = new JScrollPane(list);        list.setVisibleRowCount(7);        contentPane.setLayout(new FlowLayout());
        contentPane.add(sp);
        
        list.addMouseListener(new MouseAdapter(){
        
            public void mousePressed(MouseEvent e) 
            {
                mayPopup(e);
            }
            public void mouseReleased(MouseEvent e) 
            {
                mayPopup(e);
            }
        });
        menu = new JPopupMenu();
        JMenuItem showInfo = new JMenuItem("show this");
        showInfo.addActionListener(new ActionListener(){
        
            public void actionPerformed(ActionEvent e)
            {
                int index = list.getSelectedIndex();
                if(index >= 0)
                {
                    JOptionPane.showMessageDialog(Test.this,
                        ""+list.getModel().getElementAt(index)+" was Selected!");
                }
            }
        });
        menu.add(showInfo);
    }
    
    public void mayPopup(MouseEvent e)
    {
        if(e.isPopupTrigger())
        {
            int index = list.locationToIndex(e.getPoint());
            list.setSelectedIndex(index);
            menu.show(list,e.getX(),e.getY());
        }
    }
}
<title>Test</title>
<hr>
<applet code="Test.class" width=250 height=175>
</applet>
<hr>

解决方案 »

  1.   

    public void mouseReleased(MouseEvent event)         
                { 
                   if (event.isPopupTrigger())
                   {
      

  2.   

    Object[] items = { "item one", "item two", "item three",
                            "item four", "item five", "item six",
                            "item seven", "item eight",
                            "item nine", "item ten" };JList jList1 = new JList(items);
    jList1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    jList1_mouseClicked(e);
                }
            });void jList1_mouseClicked(MouseEvent e) {
            int index = jList1.locationToIndex(e.getPoint());
            String itemString = (String)jList1.getModel().getElementAt(index);        switch (e.getClickCount()){
                case 1:
                    System.err.println("click count = 1");
                    break;
                case 2:
                    System.err.println("click count = 2");
                    break;
            }        if(e.getModifiers()==MouseEvent.BUTTON3_MASK)
                System.out.println("right button");
            else
                System.out.println("not right button");    }