JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ThisClassEvent extends JFrame implements ActionListener{ public ThisClassEvent(){ setLayout(new FlowLayout()); JButton btn=new JButton("ok"); add(btn); btn.addActionListener(this); } public void actionPerformed (ActionEvent e){ System.out.println("The OK button is clicked"); } public static void main(String args[]){ ThisClassEvent frame = new ThisClassEvent(); frame.setTitle("自身类作为事件监听器"); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 100); frame.setVisible(true); new ThisClassEvent(); } } import java.awt.*; import java.awt.event.*; import javax.swing.*; public class OuterClassEvent extends JFrame{ public OuterClassEvent(){ setLayout(new FlowLayout()); JButton btn=new JButton("ok"); add(btn); OuterClass btListener=new OuterClass(); btn.addActionListener(btListener); } public static void main(String args[]){ OuterClassEvent frame = new OuterClassEvent(); frame.setTitle("外部类作为事件监听器"); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 100); frame.setVisible(true); new ThisClassEvent(); } } class OuterClass implements ActionListener{ public void actionPerformed(ActionEvent e){ System.out.println("The OK button is clicked"); } } import java.awt.*; import java.awt.event.*; import javax.swing.*; class InnerClassEvent extends JFrame{ public InnerClassEvent(){ setLayout(new FlowLayout()); JButton btn=new JButton("ok"); add(btn); OuterClass btListener=new OuterClass(); btn.addActionListener(btListener); } class InnerClass implements ActionListener{ public void actionPerformed (ActionEvent e){ System.out.println("The OK button is clicked"); } } public static void main(String args[]){ InnerClassEvent frame = new InnerClassEvent(); frame.setTitle("内部类作为事件监听器"); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 100); frame.setVisible(true); new ThisClassEvent(); } } import java.awt.*; import java.awt.event.*; import javax.swing.*; class AnonymousEvent extends JFrame{ public AnonymousEvent(){ setLayout(new FlowLayout()); JButton btn=new JButton("ok"); add(btn); btn.addActionListener( new ActionListener(){ //匿名内部类作为参数,new 一个lisenter实际上是创建了一个实现了这个listener的类 public void actionPerformed(ActionEvent e){ System.out.println("The OK button is clicked"); } } ); } public static void main(String args[]){ AnonymousEvent frame = new AnonymousEvent(); frame.setTitle("匿名内部类作为事件监听器"); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(280, 100); frame.setVisible(true); new ThisClassEvent(); } }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值