import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class SwingDemo extends JFrame implements MouseListener,ActionListener
{
private JMenuBar bar;
private JMenu file,file2;
private JMenuItem red;
private JMenuItem open,save;
private JMenuItem yellow;
private JMenuItem blue;
private JPopupMenu pop;
public SwingDemo()
{
bar=new JMenuBar();
file=new JMenu("文件");
file2=new JMenu("文件2");
open=new JMenuItem("打开");
save=new JMenuItem("保存");
bar.add(file);
file.add(file2);
file2.add(open);
file2.add(save);
this.setJMenuBar(bar);
red=new JMenuItem("红色");
yellow=new JMenuItem("黄色");
blue=new JMenuItem("蓝色");
pop=new JPopupMenu();
pop.add(red);
pop.add(yellow);
pop.add(blue);
pop.addMouseListener(this);
} public static void main(String args[])
{
SwingDemo frame=new SwingDemo();
frame.setDefaultCloseOperation(3);
frame.setSize(400,300);
frame.setVisible(true);
} public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
if(e.getModifiers()==e.BUTTON3_MASK)
pop.show(this,e.getX(),e.getY());
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
} public void actionPerformed(ActionEvent e) {
}
}
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class SwingDemo extends JFrame implements MouseListener,ActionListener
{
private JMenuBar bar;
private JMenu file,file2;
private JMenuItem red;
private JMenuItem open,save;
private JMenuItem yellow;
private JMenuItem blue;
private JPopupMenu pop;
public SwingDemo()
{
bar=new JMenuBar();
file=new JMenu("文件");
file2=new JMenu("文件2");
open=new JMenuItem("打开");
save=new JMenuItem("保存");
bar.add(file);
file.add(file2);
file2.add(open);
file2.add(save);
this.setJMenuBar(bar);
red=new JMenuItem("红色");
yellow=new JMenuItem("黄色");
blue=new JMenuItem("蓝色");
pop=new JPopupMenu();
pop.add(red);
pop.add(yellow);
pop.add(blue);
pop.addMouseListener(this);
} public static void main(String args[])
{
SwingDemo frame=new SwingDemo();
frame.setDefaultCloseOperation(3);
frame.setSize(400,300);
frame.setVisible(true);
} public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
if(e.getModifiers()==e.BUTTON3_MASK)
pop.show(this,e.getX(),e.getY());
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
} public void actionPerformed(ActionEvent e) {
}
}
主要是由于JPopupMenu没有实现MouseListener,你添加addActionListener再写部分相关代码就可以了
其中base是你要点击时显示JPopupMenu的组件,x,y,是位置.
……
getContentPane().addMouseListener(this);