01.import javax.swing.*;
02.import java.awt.*;
03.import java.awt.event.*;
04.
05.public class ThisClassEvent extends JFrame implements ActionListener{
06. public ThisClassEvent(){
07. setLayout(new FlowLayout());
08. JButton btn=new JButton("ok");
09. add(btn);
10. btn.addActionListener(this);
11. }
12. public void actionPerformed (ActionEvent e){
13. System.out.println("The OK button is clicked");
14. }
15. public static void main(String args[]){
16. ThisClassEvent frame = new ThisClassEvent();
17. frame.setTitle("自身类作为事件监听器");
18. frame.setLocationRelativeTo(null); // Center the frame
19. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20. frame.setSize(280, 100);
21. frame.setVisible(true);
22. new ThisClassEvent();
23. }
24.}
25.
26.import java.awt.*;
27.import java.awt.event.*;
28.import javax.swing.*;
29.
30.public class OuterClassEvent extends JFrame{
31. public OuterClassEvent(){
32. setLayout(new FlowLayout());
33. JButton btn=new JButton("ok");
34. add(btn);
35. OuterClass btListener=new OuterClass();
36. btn.addActionListener(btListener);
37. }
38. public static void main(String args[]){
39. OuterClassEvent frame = new OuterClassEvent();
40. frame.setTitle("外部类作为事件监听器");
41. frame.setLocationRelativeTo(null); // Center the frame
42. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43. frame.setSize(280, 100);
44. frame.setVisible(true);
45. new ThisClassEvent();
46. }
47.}
48.class OuterClass implements ActionListener{
49. public void actionPerformed(ActionEvent e){
50. System.out.println("The OK button is clicked");
51. }
52.}
53.
54.import java.awt.*;
55.import java.awt.event.*;
56.import javax.swing.*;
57.
58.class InnerClassEvent extends JFrame{
59. public InnerClassEvent(){
60. setLayout(new FlowLayout());
61. JButton btn=new JButton("ok");
62. add(btn);
63. OuterClass btListener=new OuterClass();
64. btn.addActionListener(btListener);
65. }
66. class InnerClass implements ActionListener{
67. public void actionPerformed (ActionEvent e){
68. System.out.println("The OK button is clicked");
69. }
70. }
71. public static void main(String args[]){
72. InnerClassEvent frame = new InnerClassEvent();
73. frame.setTitle("内部类作为事件监听器");
74. frame.setLocationRelativeTo(null); // Center the frame
75. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
76. frame.setSize(280, 100);
77. frame.setVisible(true);
78. new ThisClassEvent();
79. }
80.
81.}
82.
83.import java.awt.*;
84.import java.awt.event.*;
85.import javax.swing.*;
86.
87.class AnonymousEvent extends JFrame{
88. public AnonymousEvent(){
89. setLayout(new FlowLayout());
90. JButton btn=new JButton("ok");
91. add(btn);
92. btn.addActionListener(
93. new ActionListener(){ //匿名内部类作为参数,new 一个lisenter实际上是创建了一个实现了这个listener的类
94. public void actionPerformed(ActionEvent e){
95. System.out.println("The OK button is clicked");
96. }
97. }
98. );
99. }
100. public static void main(String args[]){
101. AnonymousEvent frame = new AnonymousEvent();
102. frame.setTitle("匿名内部类作为事件监听器");
103. frame.setLocationRelativeTo(null); // Center the frame
104. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
105. frame.setSize(280, 100);
106. frame.setVisible(true);
107. new ThisClassEvent();
108. }
109.}
|