这个问题很难吗?都不敢说了...直接做个public 变量不就行了吗?
我试过了,如果在监听器里面设变量,在监听器外根本就访问不了的;如果在监听器外设变量,它的值又不改变。我菜菜的,高手帮忙啊
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变量的方法的地方必须有监听类的实例
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