java关于菜单栏和右键菜单的添加问题

发布网友

我来回答

1个回答

热心网友

(|||¬ω¬)菜单栏不是没有显示,你没给它命名,所以显示的都是空白,点它还是有反应的...

这是第一个问题...

Menu file = new Menu("文件");
Menu edit = new Menu("编辑");
MenuItem newItem = new MenuItem("新建");
MenuItem saveItem = new MenuItem("保存");

还有第二个问题,就是pop添加菜单项的那几行代码放错位置了,放到事件响应里就好了...

//为commentItem,cancelItem注册事件*
        commentItem.addActionListener(menuListener);
        cancelItem.addActionListener(menuListener);
                                                              
        //菜单栏
        file.add(newItem);
        file.add(saveItem);
        edit.add(copyItem);
        edit.add(pasteItem);
        format.add(commentItem);
        format.add(cancelItem);
        edit.add(format);
        //讲edit ,file添加到菜单中
        mb.add(file);
        mb.add(edit);
        f.setMenuBar(mb);

p.addMouseListener( new MouseAdapter()
        {
            public void mouseReleased(MouseEvent e)
            {
//如果释放的是鼠标右键
                if(e.isPopupTrigger())
                {
                    pop.add(autoWrap);
                    pop.add(copyItem);
                    pop.add(pasteItem);
                    pop.add(format);
                    pop.show(p,e.getX(),e.getY());
//输出事件源组件的坐标
                    System.out.println("e.getX = "+ e.getX());
                    System.out.println("e.getY = "+ e.getY());
                }
            }
                                                              
        });

你修改下试试,有问题可以继续追问,望采纳哈~

追问后来在API里面找到问题啦,据说是这样子的PopMenu 的add方法
add
publicMenuItem add(MenuItem mi)
将指定的菜单项添加到此菜单。如果该菜单项为另一个菜单的一部分,则从该菜单移除它。

参数:
mi - 要添加的菜单项
返回:
已添加的菜单项
前面的一个问题你回答对了,后还有个问题面是有重复的菜单添加

追答额,那问题我倒是没发现过,只是我使用的时候都是在右击事件响应时才在pop中添加menuitem的,运行也都是正常的,所以也就没出现过你那样的问题...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com