Java事件处理的四种实现方式

(一)事件处理模式

在这里插入图片描述

(二)事件监听器的四种实现方式

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();  
    }  
}   

代码结果展示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/aabb12345687/article/details/106853407