我写了一个简单的程序来了解JPopupMenu
的工作原理。但是我的代码出了问题,它没有正确显示弹出菜单。请有人告诉我原因吗?
public class PopUpMenu extends JFrame implements ActionListener {
JPanel panel;
JPopupMenu popMenu;
JMenuItem cut;
JMenuItem copy;
public PopUpMenu() {
setVisible(true);
setSize(300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new JPanel();
popMenu = new JPopupMenu();
cut = new JMenuItem();
popMenu.add(cut);
copy = new JMenuItem();
popMenu.add(copy);
add(panel);
panel.setComponentPopupMenu(popMenu);
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent Me) {
if (Me.isPopupTrigger()) {
popMenu.show(Me.getComponent(), Me.getX(), Me.getY());
}
}
});
}
public void actionPerformed(ActionEvent arg0) {
}
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
PopUpMenu pop = new PopUpMenu();
}
};
SwingUtilities.invokeLater(r);
}
}
答案 0 :(得分:4)
您的代码是完整的(不需要鼠标侦听器,面板应该添加到JFrame的内容窗格中),但它可以正常工作。如果您在菜单项中添加了一些文字,它似乎会更好用:
cut = new JMenuItem("Cut");
答案 1 :(得分:1)
我的MenuItem
尺寸为0
,这就是我猜的原因。
因此,请为MenuItem
设置一些文字。
cut = new JMenuItem("Cut");
...
copy = new JMenuItem("Copy");
HTH