07 事件监听
1.构造事件监听器
package GUI;
import java.awt.*;
import java.awt.event.*;
public class Test06_ActionListener {
public static void main(String[] args) {
class Mylistener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("詹建海");
}
}
Mylistener mylistener = new Mylistener();
Frame frame = new Frame("my frame");
Button button = new Button("1");
frame.setVisible(true);
frame.add(button,BorderLayout.CENTER);
frame.pack(); // 自适应居中
// 按钮监听器
button.addActionListener(mylistener);
// 窗口监听器
windowClose(frame);
}
public static void windowClose(Frame frame){
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
2.多个按钮共享一个事件监听器
package GUI;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test06_lla {
// 多个按钮共用同一个监听器,但干着不同的工作
public static void main(String[] args) {
Frame frame = new Frame();
Button button1 = new Button("star");
Button button2 = new Button("stop");
frame.setVisible(true);
frame.add(button1,BorderLayout.WEST);
frame.add(button2,BorderLayout.EAST);
button1.setActionCommand("zhan_star"); // 设置按钮的信息,不使用这个函数的话为默认值:标签label
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 多个按钮共用同一个监听器,但干着不同的工作
MyListener myListener = new MyListener();
button1.addActionListener(myListener);
button2.addActionListener(myListener);
}
}
//
class MyListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("这个按钮的信息是:"+e.getActionCommand()); // 这个函数获得按钮的信息
if(e.getActionCommand().equals("star"))
// do something ,eg:
System.out.println(1);
if(e.getActionCommand().equals("stop"))
// do something ,eg:
System.out.println(2);
}
}