实验目的与要求:
1.理解事件处理的过程及掌握它们的用法。
2.理解并能设置具体程序中的事件源、监听器类和事件处理器(事件处理方法)并掌握它们的应用。
3.掌握ActionListener的用法
实验条件:
1、分析并确定事件源、监听器类。
2、监听器类实现ActionListener接口,找到相应的事件处理方法actionPerformed(ActionEventarg0)。
3、事件源的注册监听实验内容与操作:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Demo2 extends JFrame implements ActionListener{JPanel jp1,jp2,jp3,jp4,jp5,jp6;Personp;
JButton jb1,jb2,jb3,jb4;Demo2(){p=new Person();jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jp4=new JPanel();jp5=new JPanel();jp6=new JPanel();
jb1=new JButton("黑色");jb2=new JButton("红色");jb3=new JButton("蓝色");jb4=new JButton("黄色");
jb1.addActionListener(this);jb1=addActionListener(p);
jb2.addActionListener(this);jb2.addActionListener(p);
jb3.addActionListener(this);jb4.addActionListener(this);
jb1.setActionCommand("a");jb2.setActionCommand("b");jb3.setActionCommand("c");
jb4.setActionCommand("d");
jp1.add(jp2);jp1.add(jp3);jp1.add(jp4);jp1.add(jp5);
jp1.setLayout(new GridLayout(1,4,10,10));
jp6.add(jb1);jp6.add(jb2);jp6.add(jb3);jp6.add(jb4);
this.add(jp1);this.add(jp6,BorderLayout.SOUTH);
this.setTitle("颜色");this.setSize(500,200);
this.setVisible(true);this.setLocation(250,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){//TODOAuto-generatedmethodstub
Demo2d=newDemo2();
}
public void actionPerformed(ActionEvent arg0){{
if(arg0.getActionCommand().equals("a"))jp2.setBackground(Color.black);
if(arg0.getActionCommand().equals("b"))jp3.setBackground(Color.red);
if(arg0.getActionCommand().equals("c"))jp4.setBackground(Color.blue);
if(arg0.getActionCommand().equals("d"))jp5.setBackground(Color.yellow);}}
class Person implements ActionListener ActionListener 接口{
public void actionPerformed(ActionEvent arg0){
TODO Auto-generated method stub
if(arg0.getActionCommand().equals("a"))
System.out.println("这个人也看见你按了黑色按钮");
if(arg0.getActionCommand().equals("b"))
System.out.println("这个人也看见你按了红色按钮");}}
实验结果: