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(); } }
JAVA监听器添加的四种方式(自身、外部类、内部类、匿名类)
最新推荐文章于 2021-02-13 00:54:39 发布