请大家看看这个错误
我写的按扭监听事件,label声明为成员变量,但是出错了!这是为什么呢?
button.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
ImageIcon imag=new ImageIcon("6.jpg");
label.setIcon(imag);
}
}
);
D:\>javac PictureView.java
PictureView.java:59: local variable label is accessed from within inner class; n
eeds to be declared final
label.setIcon(imag);
^
1 error
----------------解决方案--------------------------------------------------------
PictureView.java:59: local variable label is accessed from within inner class; n
eeds to be declared final
看英文.
label是内部类一个方法的局部变量,变量的使用范围一定要搞清楚.
如果在类的成员里面没有,也没有继承,基本类型数据必须先声明,引用型数据必须实例化.
----------------解决方案--------------------------------------------------------
我把label声明为public的公有成员变量,不是可以在整个类中使用吗?
----------------解决方案--------------------------------------------------------
local variable label is accessed from within inner class; n
eeds to be declared final
局部变量label被内部类访问: 要声明为final类型的
你的label是声明为成员变量了吗??是声明的局部变量吧!
在方法内声明的局部变量,局部内部类可以引用,但是只能在它们被声明为final类型的时候
----------------解决方案--------------------------------------------------------
谢谢你的提醒!我检查了一下代码,原来label是方法内声明的局部变量,Label为public的公有成员变量,写错字母了.
在此,谢谢你了.
[此贴子已经被作者于2007-7-29 10:48:42编辑过]
----------------解决方案--------------------------------------------------------