java事件处理方式_Java事件处理的四种实现方式

目录

(一)事件处理模式

e8858ad019b62048fef15e777363a673.png

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

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

}

}

代码结果展示:

c68d9d8abb60ca4a70df292d067b35b9.png

外部类作为事件监听器:

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

}

}

代码结果展示:

cd54c3e99868492fc618a6c3cfbf123c.png

匿名类作为事件监听器:

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

}

}

代码结果展示:

73a69c4d943071846c251def9c88aebf.png

内部类作为事件监听:

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

}

}

代码结果展示:

10cb24453b16ddbb3a6b3f423ee8d0a3.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值