我想做一个弹出菜单,可是为什么在添加监听器的时候老是报错?在线等……

zhangzhexin_81 2006-03-26 05:34:04
我想做一个弹出式菜单,代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MenuItems extends JApplet
{
public void init()
{
// JPanel jp1=new JPanel();
// this.add(jp1);
Icon newIcon=new ImageIcon("F:\\图标\\系统图标\\74.gif","新建文档");
Icon openIcon=new ImageIcon("F:\\图标\\系统图标\\8.gif","打开文档");

JMenuBar jbar=new JMenuBar();
JMenu jmenu=new JMenu("File");

JMenuItem newItem=new JMenuItem("新建",newIcon);
JMenuItem openItem=new JMenuItem("打开……",openIcon);
JMenuItem saveItem=new JMenuItem("保存");
JMenuItem saveAsItem=new JMenuItem("另存为……");
JMenuItem exitItem=new JMenuItem("退出");

jmenu.add(newItem);
jmenu.add(openItem);
jmenu.add(saveItem);
jmenu.add(saveAsItem);
jmenu.addSeparator();
jmenu.add(exitItem);

jbar.add(jmenu);
setJMenuBar(jbar);

exitItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent a)
{
System.exit(0);
}
}
);

JPopupMenu RPopupMenu=new JPopupMenu();
JMenuItem popItem1=new JMenuItem("弹出菜单项1");
JMenuItem popItem2=new JMenuItem("弹出菜单项2");
JMenuItem popItem3=new JMenuItem("弹出菜单项3");
RPopupMenu.add(popItem1);
RPopupMenu.add(popItem2);
RPopupMenu.add(popItem3);
popItem2.setEnabled(false);

addMouseListener(new MouseAdapter()
{
public void mouseCliced(MouseEvent m)
{
if(m.getButton()==3)
RPopupMenu.show(m.getComponent(),m.getX(),m.getY());
//上面这句代码在Eclipse中老是报告:
//Cannot refer to a non-final variable RPopupMenu
//inside an inner class defined in a different method
}
}
);
}

}
我用的是Eclipse3.0
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nuage 2006-03-27
  • 打赏
  • 举报
回复
不是改成,是添加.呵呵!JPopupMenu RPopupMenu=new JPopupMenu();
改为:final JPopupMenu RPopupMenu=new JPopupMenu();
Nuage 2006-03-27
  • 打赏
  • 举报
回复
RPopupMenu 改成final 就不报错了!
eoe2005 2006-03-27
  • 打赏
  • 举报
回复
RPopupMenu.show(this,m.getX(),m.getY());
m.getComponent(),这里错了阿
m是实践类,没有这个方法
这个参数是要现实在这控件上
Fifotom 2006-03-27
  • 打赏
  • 举报
回复
把那些菜单和菜单项做成成员变量不是很好?
在鼠标监听类里面这些都要用到的,
放在init里面作为局部变量,在匿名类里面肯定是访问不到的

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧