JMenuItem jmiPro =new JMenuItem("set") ;
ActionListener a1 = new ActionListener(){
public void actionPerformed(ActionEvent e)
{
//调用别的类里的一个方法
}
};
jmiPro.addActionListener(a1);
我想选中下拉菜单的set,然后调用别的类里的一个方法触发事件`不知道这样写有没有错最主要的问题是我这样做系统都会提示"不能引用另一方法中定义的内部类中非终态变量",不知道该怎么解决
求高手解答,急啊~
ActionListener a1 = new ActionListener(){
public void actionPerformed(ActionEvent e)
{
//调用别的类里的一个方法
}
};
jmiPro.addActionListener(a1);
我想选中下拉菜单的set,然后调用别的类里的一个方法触发事件`不知道这样写有没有错最主要的问题是我这样做系统都会提示"不能引用另一方法中定义的内部类中非终态变量",不知道该怎么解决
求高手解答,急啊~
解决方案 »
- 每次修改struts 工程 action 或者java 文件 是否都必须重新启动tomcat
- 棋盘重绘问题
- (100分) 求助!!!!,关于jasperreport的问题
- 高分求救!!主窗体如何传递一个值给子窗体(在线)
- 随机选出双色球的问题
- 毕业设计打算做一个类似qq的简单聊天工具,但不知道从哪里下手,请有经验的人指点一下方向
- 如果运行一个JAVA程序,拒绝鄙视,诚意的请指教。
- applet的jdbc问题,高手救命!!
- 怎样生成Microsoft Word文档,并向word文档里写东西?
- 请问大家一个低级的问题:在windows里显示对话框的函数是AfxMessageBox("OK"),在纯java里怎么用,还要引用什么包吗?
- DreamWeaver中的问题
- Integer a=100;Integer b=100; a==b 结果是什么?为什么讲解下
直接在菜单对象上添加Action:
popupMenu.add(new AbstractAction("set") {
public void actionPerformed(ActionEvent e) {
//...
}
});
对于你的问题,试着把非终态变量声明为final试试。
内部匿名类调用局部变量需要声明为final,当然你也可以把变量改为全局变量写在类里。
你预期是什么效果
{
调用别的类里的一个方法;
}JMenuItem jmiPro =new JMenuItem("set") ;
ActionListener a1 = new ActionListener(){
public void actionPerformed(ActionEvent e)
{
a();
}
}; 这样就不用final了,不过有点投机取巧罢了