(一)事件处理模式
(二)事件监听器的四种实现方式
i.自身类作为事件监听器
ii.外部类作为事件监听器
iii.匿名内部类作为事件监听器
iv.内部类作为事件监听器
(三)代码实现
自身类作为事件监听器:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class text1 extends JFrame implements ActionListener{
JButton xing;
public text1 (){
super("Java自身类作为事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xing=new JButton("点击");
xing.addActionListener(this);
getContentPane().add(xing);
setBounds(300,300,300,260);
setVisible(true);
}
public void actionPerformed (ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.green);
}
public static void main(String args[]){
new text1();
}
}
代码结果展示:
外部类作为事件监听器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class text1 extends JFrame{
JButton xing;
public text1(){
super("Java外部类事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xing=new JButton("点击");
xing.addActionListener(new text2(this));
getContentPane().add(xing);
setBounds(300,300,300,260);
setVisible(true);
}
public static void main(String args[]){
new text1();
}
}
class text2 implements ActionListener{
text1 xin;
public text2(text1 xin){
this.xin = xin;
}
public void actionPerformed(ActionEvent e){
Container c=xin.getContentPane();
c.setBackground(Color.BLUE);
}
}
代码结果展示:
匿名类作为事件监听器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class text1 extends JFrame{
JButton xing;
public text1 (){
super("Java匿名类事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xing=new JButton("点击");
xing.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.black);
}
}
);
getContentPane().add(xing);
setBounds(300,300,300,260);
setVisible(true);
}
public static void main(String args[]){
new text1 ();
}
}
代码结果展示:
内部类作为事件监听:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class text1 extends JFrame{
JButton xing;
public text1(){
super("Java内部类事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xing=new JButton("点击");
xing.addActionListener(new text());
getContentPane().add(xing);
setBounds(300,300,300,260);
setVisible(true);
}
class text implements ActionListener{
public void actionPerformed (ActionEvent e){
Container c=getContentPane();
c.setBackground(Color.GRAY);
}
}
public static void main(String args[]){
new text1();
}
}
代码结果展示: