自己刚写的,很难看,但是你的要求可以达到,你自己再改改。package csdn;import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import java.awt.event.*;public class Frame2 extends JFrame {
  JPanel jPanel1 = new JPanel();
  BorderLayout borderLayout1 = new BorderLayout();
  JList jList1 = new JList();
  TitledBorder titledBorder1;
  JPopupMenu jPopupMenu1 = new JPopupMenu();
  JMenuItem jMenuItem0 = new JMenuItem("menuitem0");
  public Frame2() {
    try  {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }  public static void main(String[] args) {
    Frame2 frame21 = new Frame2();
    frame21.setBounds (120,120,300,300);
    frame21.show ();
  }  private void jbInit() throws Exception {
    titledBorder1 = new TitledBorder("");
    jPanel1.setLayout(borderLayout1);
    jList1.setBorder(BorderFactory.createLineBorder(Color.black));
    jList1.addMouseListener(new java.awt.event.MouseAdapter() {      public void mouseClicked(MouseEvent e) {
        jList1_mouseClicked(e);
      }
    });
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    Vector listData=new Vector();
    for ( int i=0;i<10;i++)    listData.add (new String("select "+i+" "));
    jList1.setListData (listData);
    jPopupMenu1.add (jMenuItem0);
    jList1.add (jPopupMenu1);
    jPanel1.add(jList1, BorderLayout.NORTH);
  }  void jList1_mouseClicked(MouseEvent e) {
      if ( ( e.getModifiers ()& e.BUTTON3_MASK ) == e.BUTTON3_MASK  ) {
        action_rightmouseClicked(e);
      }
  }  void action_rightmouseClicked(MouseEvent e){
    System.out.println("hello");
    jPopupMenu1.setLocation (300,300);
    jPopupMenu1.setVisible (true);
  };
}

解决方案 »

  1.   

    按你的要求,我用AWT 又做了一个。你的VJ下应该有pure java 包吧。package csdn;import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;public class Frame2_2 extends Frame {
      Panel panel1 = new Panel();
      List list1 = new List();
      BorderLayout borderLayout1 = new BorderLayout();
      PopupMenu popupMenu1 = new PopupMenu();
      MenuItem menuItem0 = new MenuItem("menuitem0");
      public Frame2_2() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        Frame2_2 frame2_2 = new Frame2_2();
        frame2_2.setBounds (120,120,300,300);
        frame2_2.show ();  }
      private void jbInit() throws Exception {
        panel1.setLayout(borderLayout1);
        list1.addMouseListener(new java.awt.event.MouseAdapter() {
          public void mouseClicked(MouseEvent e) {
            list1_mouseClicked(e);
          }
        });
        this.add(panel1, BorderLayout.CENTER);    for ( int i=0;i<10;i++)    list1.add("select "+i+" "); 
        popupMenu1.add (menuItem0);
        list1.add (popupMenu1);
        panel1.add(list1,  BorderLayout.CENTER);
      }  void list1_mouseClicked(MouseEvent e) {
          if ( ( e.getModifiers ()& e.BUTTON3_MASK ) == e.BUTTON3_MASK  ) {
            action_rightmouseClicked(e);
          }
      }  void action_rightmouseClicked(MouseEvent e){
        System.out.println("hello");
        popupMenu1.show(list1,e.getX() ,e.getY() ) ;
      };}