注册 登录
编程论坛 J2EE论坛

紧急求助变量访问问题

fch435 发布于 2007-09-18 19:58, 501 次点击
我想在菜单添加一个菜单项,功能和打开类似,不同的是选中文件后,不是打开文件,而是获取选中文件的目录和文件名,并赋值给一个String型变量,请问如何在事件监听器外获取事件监听器里的这个String型变量,请高手指点,谢谢!
4 回复
#2
ziyi5552007-09-18 20:26

这个问题很难吗?都不敢说了...直接做个public 变量不就行了吗?

#3
fch4352007-09-19 09:19

我试过了,如果在监听器里面设变量,在监听器外根本就访问不了的;如果在监听器外设变量,它的值又不改变。
我菜菜的,高手帮忙啊

#4
ziyi5552007-09-19 09:31

public class Test {

public String str=null;
public static void main(String[] args) {
Test test=new Test();
test.setStr();
System.out.println(test.str);
}
public void setStr()
{
str="赋值";
}
}
就你所说的给 String 变量赋值而论:

看这个和你所说的不是同一种情况吗 ?

如果监听方法 和 需要得到String变量方法不在同一类
那在要得到String变量的方法的地方必须有监听类的实例

#5
fch4352007-09-19 10:08

public class Test {

private JMenuItem import1;//菜单项
....
//为import1添加事件监听器
import1.addActionListener(
new ActionListener(){
public String d=null;
public void actionPerformed(ActionEvent e){
JFileChooser fileChooser=new JFileChooser();//文件选择对话框
...
d=fileChooser.getSelectedFile().toURI().toString();
}
} );
public String getName()
{
return d;//这里的d是事件监听器里面的d值
}
}

就是这个d的问题,像上面这样,在监听器里面定义d,外边这个方法根本就访问不了,说没有定义,如果在监听器外定义,返回的d值是null

1