您的位置:首页 > 编程语言 > Java开发

java事件处理机制

2018-03-07 11:54 323 查看



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



点击“黑色”按钮:





点击“红色”按钮:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: