您的位置:首页 > 编程语言 > Java开发

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

2011-07-16 22:57 501 查看
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: