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 类(){方法重写}这样的格式 展开
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 类(){方法重写}这样的格式 展开
展开全部
您好,把下面两个类去了,直接用匿名内部类来实现...
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("请输入正整数数字");
}
}
});
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("请输入正整数数字");
}
}
});
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询