Java事件处理机制- 事件监听器的四种实现方式
【摘要】
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器
使用getActionCommand之前没有设置ActionCommand,终于明白,随加上以下两句:
b1.setActionCommand("b1"); b2.setActionCommand("b2"); But...
- 自身类作为事件监听器
- 外部类作为事件监听器
- 匿名内部类作为事件监听器
- 内部类作为事件监听器
使用getActionCommand之前没有设置ActionCommand,终于明白,随加上以下两句:
b1.setActionCommand("b1");
b2.setActionCommand("b2");
自身类作为事件监听器:
-
import javax.swing.*;
-
import java.awt.*;
-
import java.awt.event.*;
-
-
/**
-
*Java事件处理机制:自身类作为事件监听器
-
*@author Winty(wintys@gmail.com)
-
*@version 2008-12-3
-
*/
-
class ThisClassEvent extends JFrame implements ActionListener{
-
JButton btn;
-
-
public ThisClassEvent(){
-
super("Java事件监听机制");
-
setLayout(new FlowLayout());
-
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
btn=new JButton("点击");
-
btn.addActionListener(this);
-
getContentPane().add(btn);
-
-
setBounds(200,200,300,160);
-
setVisible(true);
-
}
-
-
/**************************************/
-
public void actionPerformed (ActionEvent e){
-
Container c=getContentPane();
-
c.setBackground(Color.red);
-
}
-
/**************************************/
-
-
public static void main(String args[]){
-
new ThisClassEvent();
-
}
-
}
外部类作为事件监听器:
-
import java.awt.*;
-
import java.awt.event.*;
-
import javax.swing.*;
-
-
/**
-
*Java事件处理机制:外部类作为事件监听器
-
*@author Winty(wintys@gmail.com)
-
*@version 2008-12-3
-
*/
-
class OuterClassEvent extends JFrame{
-
JButton btn;
-
-
public OuterClassEvent(){
-
super("Java事件监听机制");
-
setLayout(new FlowLayout());
-
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
btn=new JButton("点击");
-
btn.addActionListener(new OuterClass(this));
-
getContentPane().add(btn);
-
-
setBounds(200,200,300,160);
-
setVisible(true);
-
}
-
-
public static void main(String args[]){
-
new OuterClassEvent();
-
}
-
}
-
-
/*外部类*********************************/
-
class OuterClass implements ActionListener{
-
OuterClassEvent oce;
-
-
public OuterClass(OuterClassEvent oce){
-
this.oce = oce;
-
}
-
-
public void actionPerformed(ActionEvent e){
-
Container c=oce.getContentPane();
-
c.setBackground(Color.red);
-
}
-
}
匿名内部类作为事件监听器:
-
import java.awt.*;
-
import java.awt.event.*;
-
import javax.swing.*;
-
-
/**
-
*Java事件处理机制:匿名内部类作为事件监听器
-
*@author Winty(wintys@gmail.com)
-
*@version 2008-12-3
-
*/
-
class AnonymousEvent extends JFrame{
-
JButton btn;
-
-
public AnonymousEvent(){
-
super("Java事件监听机制");
-
setLayout(new FlowLayout());
-
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
btn=new JButton("点击");
-
/*匿名内部类******************************/
-
btn.addActionListener(
-
new ActionListener(){
-
public void actionPerformed(ActionEvent e){
-
Container c=getContentPane();
-
c.setBackground(Color.red);
-
}
-
}
-
);
-
/***************************************/
-
getContentPane().add(btn);
-
-
setBounds(200,200,300,160);
-
setVisible(true);
-
}
-
-
public static void main(String args[]){
-
new AnonymousEvent();
-
}
-
}
内部类作为事件监听器:
-
import java.awt.*;
-
import java.awt.event.*;
-
import javax.swing.*;
-
-
/**
-
*Java事件处理机制:内部类作为事件监听器
-
*@author Winty(wintys@gmail.com)
-
*@version 2008-12-3
-
*/
-
class InnerClassEvent extends JFrame{
-
JButton btn;
-
-
public InnerClassEvent(){
-
super("Java事件监听机制");
-
setLayout(new FlowLayout());
-
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
btn=new JButton("点击");
-
btn.addActionListener(new InnerClass());
-
getContentPane().add(btn);
-
-
setBounds(200,200,300,160);
-
setVisible(true);
-
}
-
-
/*内部类*********************************/
-
class InnerClass implements ActionListener{
-
public void actionPerformed (ActionEvent e){
-
Container c=getContentPane();
-
c.setBackground(Color.red);
-
}
-
}
-
/**************************************/
-
-
public static void main(String args[]){
-
new InnerClassEvent();
-
}
-
}
文章来源: gamwatcher.blog.csdn.net,作者:香菜聊游戏,版权归原作者所有,如需转载,请联系作者。
原文链接:gamwatcher.blog.csdn.net/article/details/6914224
推荐

华为开发者空间发布
让每位开发者拥有一台云主机
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)