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