java事件处理机制

 
/**
 * 功能:事件处理机制
 * 按下按钮会产生不停地效果
 */
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(){
//		
//	}
//}

运行结果:


点击“黑色”按钮:


点击“红色”按钮:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值