51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Java学习之路-GUI-用Frame实现3种事件处理方式

用三种不同的事件处理方式,实现点击按钮改变背景颜色和关闭窗口的功能。

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

}


赞(1)
未经允许不得转载:工具盒子 » Java学习之路-GUI-用Frame实现3种事件处理方式