/**
* 功能:事件处理机制
* 按下按钮会产生不停地效果
*/
package com.ShiJianChuLi;
import java.awt.*;
import javax.swing.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Demo1 extends JFrame implements ActionListener{
//定义所需组件
//定义一个panel
//MyPanel myPanel=null;
JButton jButton1=null;
JButton jButton2=null;
JPanel jPanel=null;
JPanel jPanel2=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo1 demo1=new Demo1();
}
//构造函数初始化组件
public Demo1(){
Cat cat=new Cat();
// myPanel=new MyPanel();
jButton1=new JButton("黑色");
jButton2=new JButton("红色");
jPanel=new JPanel();
jPanel2=new JPanel();
this.add(jPanel,BorderLayout.NORTH);
this.add(jPanel2);
//this.add(myPanel);
jPanel.add(jButton1);
jPanel.add(jButton2);
/**
* 事件监听的实现:
* 事件源:jButton1、jButton2
* 事件:当这两个按钮被点击时,会产生事件信息如“选择黑色”
* 事件监听者:this、以及cat对象 (注:事件监听者的类必须继承ActionListener之类的接口(这里是按钮的单击,选择ActionListener;如果是键盘,就得继承KeyListener等等),并重载actionPerformed方法)
* 总的来说,当事件源产生事件,便会自动调用事件监听者的actionPerformed方法(其他的接口也有对应的方法)
*/
//注册监听
jButton1.addActionListener(this);
jButton1.addActionListener(cat);
//指定监听action命令
jButton1.setActionCommand("选择黑色");
jButton2.addActionListener(this);
jButton2.addActionListener(cat);
jButton2.setActionCommand("选择红色");
this.setTitle("事件处理机制");
this.setSize(400, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//事件处理的方法,当demo1获取事件信息,(得到 监听)会自动调用该函数
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//判断是那个按钮被点击
if (e.getActionCommand().equals("选择黑色")) {
System.out.println("你选中了黑色按钮");
jPanel2.setBackground(Color.black);
}
if (e.getActionCommand().equals("选择红色")) {
System.out.println("你选中了红色按钮");
jPanel2.setBackground(Color.red);
}
}
}
class Cat implements ActionListener{
//事件处理方法
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand().equals("选择黑色")) {
System.out.println("黑猫警长");
}
if (e.getActionCommand().equals("选择红色")) {
System.out.println("虹猫宝宝");
}
}
}
//class MyPanel extends JPanel{
// public void paint(Graphics graphics){
//
// }
// public MyPanel(){
//
// }
//}
运行结果:
点击“黑色”按钮:
点击“红色”按钮: