java关于swing按钮的监听事件代码有些疑问

我在一段代码示例里exit.addActionListener(newActionListener(){publicvoidactionPerformed(finalAc... 我在一段代码示例里
exit.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
System.exit(0);
}
});
其中exit是一个new jbutton按钮类型。
我的疑问是,其中看API中的这个jbutton的方法
addActionListener
public void addActionListener(ActionListener l)

然后

public interface ActionListener extends EventListener {
public void actionPerformed(ActionEvent e);
}
问题1:在addActionListener参数里的ActionListener是一个接口类,我看很多示例都是写个class去继承它后再new class的,这个示例直接new 接口类的作法也没错,哪个做法比较常用,或有啥区别。
问题2:我一直以为方法参数只是传递一个对象,不管是什么类型,都是对像,可是像这个示例里,不仅传了一个接口类进去,还同时能在参数里直接实现接口方法。那么仅是参数是接口才能这样做,还是其它像类也可以这样,如new 类(){方法重写}这样的格式
展开
 我来答
山水阿锐
2015-03-23 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,把下面两个类去了,直接用匿名内部类来实现...

b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.print(jt.getText());
}

});

b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
jt.setText("");
DoubleColorBall dbcb = new DoubleColorBall();
try {
// 根据文本框里输入的数字,调用DoubleColorBall中的方法生成彩票
String[] num = dbcb.getNumber(Integer
.parseInt(jf.getText()));
for (int i = 0; i < num.length; i++) {
jt.append(num[i] + "\n");
}
} catch (Exception e) {
e.printStackTrace();
jt.setText("请输入正整数数字");

}
}
});
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rankabc
2015-03-23 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1064万
展开全部
问题1:一般内容比较少都是用内部类形式

问题2:这是匿名内部类
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式