`

javabean 的一个用法 && 二

阅读更多

 JavaBean ,以前也有看过,和事件模式差不多,但在触发事件的时机不同,至于javabean的特性方面,,可以去googleg 一下

而javabean 的事件模型,和awt中的事件处理差不多,

删除事件监听-------->>>> 事件源(JavaBean) ------->> 添加事件监听

在setXXX()时,发出事件,

由相应的事件监听者来处理事件 。

,下面直接来看一个例子:

package org.com.javabean2;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

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

public class JbuttonTest  implements ActionListener , PropertyChangeListener
{

	 JButtonBean jbb = new JButtonBean() ;
	 JButton jb = new JButton("Test") ;
     JButton jb2 = new JButton("Test2") ;
	public JbuttonTest()
	{
		JFrame jf = new JFrame("JButton Test");
	      
	       jb.setPreferredSize(new Dimension(60,40)) ;
	       Container c = jf.getContentPane();
	       c.setLayout(new FlowLayout()) ;
	       jf.add(jb) ;
	       jf.add(jb2) ;
	       jb.addActionListener(this) ;
	       jb2.addActionListener(this) ;
	       jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
	       jf.setSize(300,400) ;
	       
	      
	       jbb.addPropertyChangeListener(this) ;
	       jbb.setOutString("你好") ;
	       
	       jf.setVisible(true) ;
	}
   public  static void  main(String args[])
   {
	   new JbuttonTest();
       
   }


  public void actionPerformed(ActionEvent e) 
  {
	  if(e.getSource() == jb)
	  {
	  System.out.println(e.getSource().getClass());
 	  System.out.println("Test1111....");
 	  
 	  jbb.setOutString(jb2.getText()) ;      // 重新调用 ;  当点两次时,就不会调用,当oldValue == newValue  时,就不会调用
	  }else if(e.getSource() == jb2)
	  {
		  System.out.println(e.getSource().getClass());
		  jbb.setOutString(jb.getText()) ;      // 重新调用 ;
	  }
  }
  
@Override
public void propertyChange(PropertyChangeEvent evt)
  {
	  System.out.println("old value "+evt.getOldValue());
	  System.out.println("new value "+evt.getNewValue());
	  System.out.println("property name "+evt.getPropertyName());
	  
  }
}
package org.com.javabean2;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

/**
 * 事件源
 * @author Administrator
 *
 */
public class JButtonBean 
{
	public JButtonBean()
	{
		super();
	}
	PropertyChangeSupport  pcs = new PropertyChangeSupport(this) ;
	private String outString ;
	private final String  FIRE_PROPERTY_CHANGE_LISTNERER = "outString";
	public String getOutString() {
		return outString;
	}
	public void setOutString(String outString) {
		String oldString = this.outString ;
		this.outString = outString;
		pcs.firePropertyChange(FIRE_PROPERTY_CHANGE_LISTNERER, oldString, outString)  ;
	}
	
	public synchronized void  addPropertyChangeListener(PropertyChangeListener pc)
	{
		pcs.addPropertyChangeListener(pc) ;
	}
	public synchronized void removePropertyChangeListener(PropertyChangeListener pc )
	{
		pcs.removePropertyChangeListener(pc) ;
	}
	
}

 

   但对于java bean,还有其它的用法,个人觉得用事件也能替换javabean事件,不知道有没有高人知道,javabean的高级用法,或是在企业中是怎么用的,欢迎高手拍砖。

例如上面那个:

pcs.firePropertyChange(FIRE_PROPERTY_CHANGE_LISTNERER, oldString, outString)  ;
在setOutString()中触发,如果写一个事件处理,把它放在相应的地方也能达到这种效果 。

   

  

 

分享到:
评论

相关推荐

    JSP&javaBean写的简单用户验证

    这个简单的用户验证示例是学习JSP和JavaBean协同工作的一个良好起点,它展示了如何在实际项目中组织和管理数据,以及如何使用JavaBean来进行业务逻辑处理。对于初学者来说,这是一个理解和实践Web开发基础的好机会。

    javabean一个简单的例子,可直接用

    在这个名为"javabean1"的压缩包中,我们可能找到一个或多个JavaBean的实现。在MyEclipse这样的集成开发环境中,创建和使用JavaBean非常便捷。MyEclipse提供了代码生成工具,可以自动生成getter和setter方法,甚至...

    javabean概念和使用

    2. 方法(method):JavaBean 中的方法就是通常的 Java 方法,它可以从其他组件或在脚本环境中调用。 3. 事件(event):JavaBean 向外部发送的或从外部接收的事件。 JavaBean 的特征 * 一个 bean 没有必须继承的...

    JAVABEAN

    JavaBean是一种特殊的Java类,它是Java编程语言中的一个核心概念,尤其在开发企业级应用程序时极为常见。JavaBean遵循特定的规范,使它们能够被其他Java应用或开发工具(如IDEs)识别、可视化和操作。JavaBean的主要...

    一个servlet,javabean。的例子

    以及一个JavaBean类,如`UserBean.java`,它封装了用户信息并提供了验证方法。为了进一步学习这个例子,我们需要解压文件并查看具体的代码实现。 总的来说,Servlet和JavaBean是Java Web开发中的基本元素,理解它们...

    实验四 JavaBean及Servlet使用

    《JavaBean及Servlet使用》实验详解 实验四的目的是让学生深入理解JavaBean和Servlet的开发流程,这二者是Java Web开发中的重要组成部分。JavaBean是一种符合特定规范的Java类,通常用于封装业务逻辑和数据,而...

    自己写的一个购物车(jsp+javabean)

    标题 "自己写的一个购物车(jsp+javabean)" 提供了一个关于小型电子商务系统实现的基础信息,这是一个基于JavaWeb技术的简单购物车应用。在这个项目中,开发者使用了JSP(JavaServer Pages)和JavaBean两种核心组件来...

    使用JSP、JavaBean和Servlet实现一个简单的留言板设计.zip

    在本项目中,我们主要探讨如何使用JSP(JavaServer Pages)、JavaBean和Servlet技术来构建一个简单的在线留言板系统。这个系统将允许用户提交留言,并将这些数据持久化存储,以便其他用户可以查看和交互。以下是对每...

    一个jsp+javabean 设计的新闻发布系统

    综上所述,一个基于jsp+javabean的新闻发布系统涵盖了Web开发的多个方面,包括后端逻辑处理、数据库操作、用户交互和性能优化等,是学习和实践Web开发的重要实例。通过这样的系统,开发者能够深入理解Web应用程序的...

    dwr入门 -- 02 -- HelloWord解释&&使用javabean

    在"HelloWorld解释&&使用javabean"这个主题中,我们将深入理解DWR的基本概念、工作原理,并通过一个简单的JavaBean示例来展示其用法。 首先,DWR的核心功能是提供了一个安全、高效的AJAX(Asynchronous JavaScript ...

    JavaBean示例

    2. **无参数构造器**:JavaBean应包含一个无参数的构造器,以便在运行时实例化对象。 3. **序列化**:通常,JavaBean会实现`java.io.Serializable`接口,这样它们就可以被序列化,便于持久化或跨网络传输。 4. **...

    javabean和json转换_javabean2json_

    在Java开发中,JavaBean和JSON之间的转换是一个常见的任务,特别是在进行Web服务或者前后端交互时。JavaBean是Java中的一个对象模型,用于封装数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换...

    JSP课件-javabean的使用教程

    JavaBean是Java编程中的一个核心概念,它是一种符合特定规范的Java类,常用于封装数据和业务逻辑,便于在Web应用程序中重用和管理。在JSP中,JavaBean可以作为数据模型,帮助我们构建动态网页。 **一、JavaBean的...

    使用JavaBean扩展Forms功能

    这通常涉及到定义一个Java类,遵循JavaBean规范,即包含一个无参数的构造函数,以及私有属性和对应的getter、setter方法。例如,我们创建一个名为`MyBean`的JavaBean,用于处理一些业务逻辑: ```java public class...

    01_JavaBean讲解(上)2

    在本教程“01_JavaBean讲解(上)2”中,我们将深入探讨JavaBean的核心概念和使用方法。这个部分可能是对之前内容的延续,强调了JavaBean在实际开发中的重要性。 首先,JavaBean是Java类库中的一个组件,它符合一些...

    一个精典实用的jsp+javabean例子

    2. **JavaBean的创建和使用**:学习如何编写符合JavaBean规范的类,包括属性、构造函数、getter和setter方法,并在JSP中实例化和使用JavaBean。 3. **数据传递**:掌握如何在JSP页面和JavaBean之间传递数据,如通过...

    JAVABEAN方法实例

    接着,JavaBean将实现一个方法来查找第二个字符串在第一个字符串中的位置。这可以通过调用Java的内置`indexOf()`方法来完成,该方法返回子字符串在父字符串中首次出现的索引。如果未找到,则返回-1。例如: ```java...

    JavaBean创建和使用:计算器

    我们将深入探讨JavaBean的特性、创建过程以及在实际应用中的使用方法。 首先,JavaBean遵循一定的规范,它必须是一个公共类(public class),并且具有无参数的构造函数。此外,它的属性通常被声明为私有的...

    使用JavaBean连接数据库

    该类提供了getConn()方法来建立连接,executeQuery1()方法来执行查询,executeUpdate2()方法来执行更新,closeStmt()和closeConn()方法来关闭连接和语句。 使用JavaBean连接数据库的优点: * 封装数据库操作:...

    JavaBean_Javabean增删改查_audiencevu9_

    2. **无参构造器**:JavaBean应提供一个无参数的构造函数,以便于实例化对象。 3. **序列化**:为了支持持久化或跨网络传输,JavaBean可以实现Serializable接口。 在用户管理的场景中,我们通常需要创建一个User类...

Global site tag (gtag.js) - Google Analytics