首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPopupMenu不工作

JPopupMenu不工作
EN

Stack Overflow用户
提问于 2011-03-09 16:44:18
回答 2查看 1.4K关注 0票数 0

我写了一个简单的程序来理解JPopupMenu是如何工作的。但是我的代码出了问题,它不能正确显示弹出菜单。有人能告诉我原因吗?

代码语言:javascript
复制
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);

}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-09 16:51:41

您的代码是完美的(不需要鼠标侦听器,应该将面板添加到JFrame的内容窗格中),但它可以正常工作。如果你给你的菜单项添加一些文本,似乎效果会更好:

代码语言:javascript
复制
cut = new JMenuItem("Cut");
票数 4
EN

Stack Overflow用户

发布于 2011-03-09 16:53:32

你的MenuItem大小是0,我想这就是原因。

因此,为您的MenuItem设置一些文本。

代码语言:javascript
复制
cut = new JMenuItem("Cut");
...
copy = new JMenuItem("Copy");

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5243218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档