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