我写了一个简单的程序来理解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);
}}
发布于 2011-03-09 16:51:41
您的代码是完美的(不需要鼠标侦听器,应该将面板添加到JFrame的内容窗格中),但它可以正常工作。如果你给你的菜单项添加一些文本,似乎效果会更好:
cut = new JMenuItem("Cut");发布于 2011-03-09 16:53:32
你的MenuItem大小是0,我想这就是原因。
因此,为您的MenuItem设置一些文本。
cut = new JMenuItem("Cut");
...
copy = new JMenuItem("Copy");HTH
https://stackoverflow.com/questions/5243218
复制相似问题