使用 swing设计出图形界面之后,必须要使用事件处理机制让我们的界面能够处理事件。
这样才能算上一个完整的app。
swing事件处理机制是采取委派事件模型,所谓委派事件模型是指当事件发生时。产生事件的
对象,把事件信息。传递给监听者处理的一种方式。而这里说的事件信息实际上就是
java.awt.event 事件类库里面某个类所创建的对象。
比如说你点击了某个按钮。这个按钮如果采用了事件监听,则会触发一个事件,然后将时间委派
给时间监听处理
简单事件监听,当点击红色按钮,面板变成红色,当点击蓝色按钮面板变成蓝色
package draws;
import java.awt.*;
import javax.swing.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/** swing事件监听、处理学习
* Created by admin on 2017/7/22.
*/
public class Events extends JFrame implements ActionListener{
// 我们需要实现ActionListener的方法actionPerformed完成事件监听处理
private JPanel panel;
private JButton jButton1, jButton2;
public static void main(String[] args){
Events events = new Events();
}
public Events(){
panel = new JPanel();
jButton1 = new JButton("切换为红色");
jButton2 = new JButton("切换为蓝色");
this.add(jButton1, BorderLayout.NORTH);
this.add(panel, BorderLayout.CENTER);
this.add(jButton2, BorderLayout.SOUTH);
// 注册监听, 监听,参数是希望让谁去处理这里我让我们的Events类去处理监听,所以填了this,代表这个类本身
jButton1.addActionListener(this);
// 指定action命令,将这个命令传递给监听者
jButton1.setActionCommand("红色");
jButton2.addActionListener(this);
jButton2.setActionCommand("蓝色");
this.setTitle("事件处理");
this.setLocation(500, 300);
this.setSize(800, 600);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
// 处理事件,判断是哪个按钮被点击
if (e.getActionCommand().equals("红色")){
panel.setBackground(Color.RED);
}
if (e.getActionCommand().equals("蓝色")){
panel.setBackground(Color.BLUE);
}
}
}