今天早上的两点收获:
1、addActionListener(其中的setActionCommand函数就是要对对象进行唯一性的标记,便于消息传来后进行处理。理论上actionlistener可以全部代替其他监听,我是这么认为的,因为其标记的唯一性,但是这样的话会让某些很简单的监听变得复杂,所以一般只对要唯一性判断的监听才用)
2、消息监听只是对特定的对象进行特定方式的监听,监听的结果是一大堆的事件,所以要判断某个按钮是否被点击还是得要对传来的消息进行具体按钮的判断
 
另外,绘图是要记得手动进行repaint函数的调用。
Demo代码:
/*
* 实现java事件监听机制
*/
package com.listener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*; public class Demo9_5 extends JFrame
{
//定义组件
JButton jb1,jb2;
MyPanel jp1;
public static void main(String[] args)
{
Demo9_5 demo9_5 = new Demo9_5(); }
public Demo9_5()
{
//创建组件
jb1 = new JButton("黑色");
jb2 = new JButton("红色");
//添加组件
jp1 = new MyPanel(); jb1.setActionCommand("black");
jb2.setActionCommand("red"); this.setLayout(new GridLayout(3,1)); //设置布局样式
this.add(jb1);
this.add(jp1);
this.add(jb2); //注册监听!
jb1.addActionListener(jp1);
jb2.addActionListener(jp1); //显示窗体
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
} class MyPanel extends JPanel implements ActionListener
{
//画出背景颜色
int c = 0;
public void paint(Graphics g)
{
super.paint(g);
//获取当前mypanel的宽和高
int w,h;
w = this.getWidth();
h = this.getHeight();
if(c == 0)
{
g.fillRect(0, 0, w, h);
}
else if(c == 1)
{
g.setColor(Color.red);
g.fillRect(0, 0, w, h);
}
} @Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getActionCommand() == "black")
{
c = 0;
repaint();
System.out.println("BLACK");
}
if(e.getActionCommand() == "red")
{
c = 1;
repaint();
System.out.println("RED");
}
} }

红黑色背景切换。

java事件监听机制2的更多相关文章

  1. java事件监听机制

    1.简单的事件监听 package demo2; /* * java事件监听机制 */ import java.awt.*; import javax.swing.*; import java.awt ...

  2. JAVA事件监听机制的实现

    今天学习了java的事件编程机制,略有体会,先在此记下心得. 第一,首先明确几个概念. 事件源:一个产生或者触发事件的对象.事件:承载事件源状态改变时的信息对象.事件监听器接口:实际上就是一个类,该类 ...

  3. Java事件监听机制与观察者设计模式

    一. Java事件监听机制 1. 事件监听三要素: 事件源,事件对象,事件监听器 2. 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对 ...

  4. JAVA事件监听机制学习

    //事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...

  5. JAVA事件监听机制与实现

    事件监听机制的实现:参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回调函数) 事件有许 ...

  6. java 事件监听机制组成

    事件源(组件) 事件(Event) 监听器(Listener) 事件处理(引发事件后处理方式) 事件监听机制流程图 务必记牢: 确定事件源(容器或组件) 通过事件源对象的addXXXListener( ...

  7. java事件监听机制(自定义事件)

    java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...

  8. 【转】java事件监听机制

    java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...

  9. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

随机推荐

  1. UVALive 4270 Discrete Square Roots

    题目描述: 在已知一个离散平方根的情况下,按照从小到大的顺序输出其他所有的离散平方根. 在模n意义下,非负整数x的离散平方根是满足0<=r<n且r2=x(mod n)的整数r. 解题思路: ...

  2. GitLab使用总结[转]

    http://blog.csdn.net/huaishu/article/details/50475175 GitLab使用总结

  3. python协程函数应用 列表生成式 生成器表达式

    协程函数应用 列表生成式 生成器表达式   一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._n ...

  4. [转载]Java给word中的table赋值

    一.准备工作: 下载PageOffice for  Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...

  5. 【spark】常用转换操作:join

    join就表示内连接. 对于内链接,对于给定的两个输入数据集(k,v1)和(k,v2) 根据相同的k进行连接,最终得到(k,(v1,v2))的数据集. 示例 val arr1 = Array((&qu ...

  6. Android studio 导入ApiDemo

    1.import 项目,sdk目录:sdk\samples\android-21\legacy\ApiDemos,import时一直下一步就ok了. 2.Error:Error: The file n ...

  7. jquery 中多条件选择器,相对选择器,层次选择器的区别

    一.Jquery常用的过滤选择器如下所示: 1.:first,选取第一个元素,比如$("div:first")选取第一个div元素 2.:last,选取最后一个元素,比如$(&qu ...

  8. Arcgis for Androd API开发系列教程(一)——地图显示与GPS定位

    序:最近呢,工作鸭梨不是怎么大,对于自己爱折腾的想法又冒出了水面,开始自己的android开发的学习之旅.但是呢,本人是做GIS的,所以呢,就打算从这方面入手看看,是不是有什么比较好玩的玩意呢,这才导 ...

  9. Near Field Communication (NFC) applications

    Near Field Communication (NFC) applications There has been little practical guidance available on NF ...

  10. Android开发的基础知识点

    1.Android开发的四大组件: Activity:android应用程序上看到的一页. Service:运行在后台,可以其他组件交互(音乐播放器). BroadcoastReceiver:用来对外 ...