自己刚写的,很难看,但是你的要求可以达到,你自己再改改。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);
};
}
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);
};
}
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() ) ;
};}