mapxtreme java的setSelected()

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:05:34
我的程序这么写的:
public class Fancy{
.
.(省略无关的)
.
public PanMapTool pan;
public JButton test;
.
.
.
public void main(){

Load();
}
public void Load(){
test.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
pan.setSelected(true);//注意这句
}
catch (PropertyVetoException e3) {
e3.printStackTrace();
}
}
});
}
}

问题是:当我把pan.setSelected(true)这句放在test的监听事件外面时,它是可以运行的,放在里面就不行。应该类型不对,我觉得public该可以的,可是实际上是不行的。望高手帮忙啊!!!

内部类只能使用静态属性,你把pan改为静态的试试,或者在外面声明一个新的静态变量temp,让它等于pan,然后在内部类里用temp.setSelected(true);

不推荐你使用内部类来写事件监听器,虽然方便,但是代码很乱,而且不容易维护。