用三种不同的事件处理方式,实现点击按钮改变背景颜色和关闭窗口的功能。
package GUI;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Random;
public class FrameTest1 extends Frame implements ActionListener{
Button button1;
Button button2;
Button button3;
public FrameTest1(){
this.setTitle("改变颜色");
this.setSize(400,300);
this.setLayout(new FlowLayout( ));
button1 = new Button("匿名");
button2 = new Button("内部类");
button3 = new Button("接口");
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
changeColor();
}
});
buttonListener bl = new buttonListener();
button2.addActionListener(bl);
button3.addActionListener(this);
this.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent windowEvent) {
}
@Override
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
@Override
public void windowClosed(WindowEvent windowEvent) {
}
@Override
public void windowIconified(WindowEvent windowEvent) {
}
@Override
public void windowDeiconified(WindowEvent windowEvent) {
}
@Override
public void windowActivated(WindowEvent windowEvent) {
}
@Override
public void windowDeactivated(WindowEvent windowEvent) {
}
});
this.add(button1);
this.add(button2);
this.add(button3);
this.setResizable(false);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
changeColor();
}
class buttonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent actionEvent) {
changeColor();
}
}
public void changeColor(){
Random random = new Random();
int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);
Color c = new Color(r, g, b);
this.setBackground(c);
}
public static void main (String[] args){
new FrameTest1();
}
}