永发信息网

java如何在监听器类里访问外部的值

答案:6  悬赏:70  手机版
解决时间 2021-04-05 10:18
java如何在监听器类里访问外部的值
最佳答案
把i作为外部的类的一个属性,而不只是在方法之中声明。
那样就可以访问了。
如下面的例子:
public class Test3 {
private int n; //再次将n定义为Test3的属性,而不只是方法之中的一个局部变量。
private InterA iter;
public Test3() {

n = 10;
this.setInterA(new InterA() {
public int count() {
int sum = 0;
for(int i=0; i sum += i;
return sum;
}
});
}

public void setInterA(InterA a ) {
iter = a;
}
public static void main(String []args) {
}
}
interface InterA {
int count();
};
全部回答
试试this.i
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Demo extends JFrame
{
private int i = 0;
public Demo()
{
JButton b3 = new JButton("xx");
b3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
i = i + 1;// 这样编译不通过的,,怎么样才能去访问外部的值;
// 或者在用JFileChooser的时候在另个按钮监听器的设置
// 的默认目录在这个监听器里怎么用还是在外面设置个
// 能两方都用的JFileChooser
System.out.println("i");
}
});
}
}
final int i = 0 ;
4楼正解。把要访问的变量设置为成员变量、全局变量,不要把它定义在方法中,不然这种内部方法块不能使用此变量。
把ActionEvent封装一下,然后做一个可以传递数据进去的构造方法
比如叫MyActionEvent
加入一个 Map data;
new的时候把i传进去
然后map.put("i",i);
之后这样的MyActionEvent就能通用于你遇到的类似情况了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
java GUI中怎么实现JFrame上的JDialog全部在J
读者上的名言警句,关于读书的名言
攸是什么意思?
京胡软弓子是什么样的
选出依次填入文中空格处最恰当的一项什么样的
公明百佳华丽都休闲会所
医生好,想肾虚会导致脑鸣吗
魔兽怎么去塔纳安丛林,魔兽7.0前往阿苏纳NPC
哪有卖冰淇淋蛋糕的
巴黎春天国际婚纱摄影(新华路)地址有知道的么
什么是听证会制度?
时针.在1点整到2点之间,什么时间与分针在
单选题下列句子,没有语病的一项是A.有关专家
禅意唯美古诗词,陈琳的新专辑名字是什么?
1995年农历8月杨公祭是公历多久
推荐资讯
有哪部fate的同人小说描写了兰斯洛特
花草茶:能瘦腿吗?
96除以4是几年级的知识
洛龙区洛阳张吉记小碗菜(河科大店)地址在什么
商店运来钢笔120盒,运来的圆珠笔比钢笔多40%
大王纸尿裤和花王纸尿裤哪个好
《诗经》中作品的流传有多种原因
如何跟狮子座女生说话
遂宁哪有买魔术道具的地方。。
咸阳哪有卖蒸包之类的?
普通灯线开关怎么接,这个怎么接三条线出来到
长虹42寸液晶电视开机音,视频正常过一会熄屏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?