import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame implements ActionListener
{
WoDeMianBan3 mianBan=null; //声明面板
JButton b1,b2;//声明按钮
public static void main(String[] args)//主函数
{
Test t1=new Test();//声明并新建主类对象
}
public Test()//构造函数 在t1类对象被调用的时候自动运行
{
mianBan=new WoDeMianBan3();//新建面板
b1=new JButton("红色");//新建按钮
b2=new JButton("蓝色");
JianTingZhe jianTing1=new JianTingZhe();//声明并新建监听1

this.add(b1,BorderLayout.NORTH);//把按钮b1安装到面板北部
this.add(b2, BorderLayout.SOUTH);//把按钮b2安装到面板南部
mianBan.setBackground(Color.yellow);//设置面板背景为黄色
this.add(mianBan);//在t1对象中添加这个面板。
b1.addActionListener(this);//按钮b1添加活动监听者 相当于新建一个监听器
b1.addActionListener(jianTing1);//按钮b1添加活动监听者“监听1” 相当于把“监听1”赋值给新建的监听器
b1.setActionCommand("1");//区别按钮 设置活动命令1
b2.addActionListener(this);
b2.addActionListener(jianTing1);
b2.setActionCommand("2");

this.setSize(300,260);
this.setLocation(300,280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)//活动操作(按钮单击方法)
{
//System.out.println("按钮起作用了");
if(e.getActionCommand().equals("1"))//如果活动指令等于1
{
//System.out.println("红色");
mianBan.setBackground(Color.red);//面板背景变成红色
}
else if(e.getActionCommand().equals("2"))//如果活动指令等于2
{
//System.out.println("蓝色");
mianBan.setBackground(Color.blue);//面板背景变成蓝色
}
}
}
class WoDeMianBan3 extends JPanel//创建面板类
{
public void paint(Graphics g) //paint绘画 graphics图形
{
super.paint(g);//用父类的方法。听说没什么用但还是要写一下。
}
}
class JianTingZhe implements ActionListener//实现监听器接口 ActionListener监听器
{
public void actionPerformed(ActionEvent a)活动操作 活动事件a
{
if(a.getActionCommand().equals("1"))//得到活动指令等于1
{
//System.out.println("监听者在监听,知道你按下的是红色按钮");
}
else if(a.getActionCommand().equals("2"))//得到活动指令等于2
{
//System.out.println("监听者在坚挺,知道你按下的是蓝色按钮");
}
}
}