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协同工作的一个良好起点,它展示了如何在实际项目中组织和管理数据,以及如何使用JavaBean来进行业务逻辑处理。对于初学者来说,这是一个理解和实践Web开发基础的好机会。
在这个名为"javabean1"的压缩包中,我们可能找到一个或多个JavaBean的实现。在MyEclipse这样的集成开发环境中,创建和使用JavaBean非常便捷。MyEclipse提供了代码生成工具,可以自动生成getter和setter方法,甚至...
2. 方法(method):JavaBean 中的方法就是通常的 Java 方法,它可以从其他组件或在脚本环境中调用。 3. 事件(event):JavaBean 向外部发送的或从外部接收的事件。 JavaBean 的特征 * 一个 bean 没有必须继承的...
JavaBean是一种特殊的Java类,它是Java编程语言中的一个核心概念,尤其在开发企业级应用程序时极为常见。JavaBean遵循特定的规范,使它们能够被其他Java应用或开发工具(如IDEs)识别、可视化和操作。JavaBean的主要...
以及一个JavaBean类,如`UserBean.java`,它封装了用户信息并提供了验证方法。为了进一步学习这个例子,我们需要解压文件并查看具体的代码实现。 总的来说,Servlet和JavaBean是Java Web开发中的基本元素,理解它们...
《JavaBean及Servlet使用》实验详解 实验四的目的是让学生深入理解JavaBean和Servlet的开发流程,这二者是Java Web开发中的重要组成部分。JavaBean是一种符合特定规范的Java类,通常用于封装业务逻辑和数据,而...
标题 "自己写的一个购物车(jsp+javabean)" 提供了一个关于小型电子商务系统实现的基础信息,这是一个基于JavaWeb技术的简单购物车应用。在这个项目中,开发者使用了JSP(JavaServer Pages)和JavaBean两种核心组件来...
在本项目中,我们主要探讨如何使用JSP(JavaServer Pages)、JavaBean和Servlet技术来构建一个简单的在线留言板系统。这个系统将允许用户提交留言,并将这些数据持久化存储,以便其他用户可以查看和交互。以下是对每...
综上所述,一个基于jsp+javabean的新闻发布系统涵盖了Web开发的多个方面,包括后端逻辑处理、数据库操作、用户交互和性能优化等,是学习和实践Web开发的重要实例。通过这样的系统,开发者能够深入理解Web应用程序的...
在"HelloWorld解释&&使用javabean"这个主题中,我们将深入理解DWR的基本概念、工作原理,并通过一个简单的JavaBean示例来展示其用法。 首先,DWR的核心功能是提供了一个安全、高效的AJAX(Asynchronous JavaScript ...
2. **无参数构造器**:JavaBean应包含一个无参数的构造器,以便在运行时实例化对象。 3. **序列化**:通常,JavaBean会实现`java.io.Serializable`接口,这样它们就可以被序列化,便于持久化或跨网络传输。 4. **...
在Java开发中,JavaBean和JSON之间的转换是一个常见的任务,特别是在进行Web服务或者前后端交互时。JavaBean是Java中的一个对象模型,用于封装数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换...
JavaBean是Java编程中的一个核心概念,它是一种符合特定规范的Java类,常用于封装数据和业务逻辑,便于在Web应用程序中重用和管理。在JSP中,JavaBean可以作为数据模型,帮助我们构建动态网页。 **一、JavaBean的...
这通常涉及到定义一个Java类,遵循JavaBean规范,即包含一个无参数的构造函数,以及私有属性和对应的getter、setter方法。例如,我们创建一个名为`MyBean`的JavaBean,用于处理一些业务逻辑: ```java public class...
在本教程“01_JavaBean讲解(上)2”中,我们将深入探讨JavaBean的核心概念和使用方法。这个部分可能是对之前内容的延续,强调了JavaBean在实际开发中的重要性。 首先,JavaBean是Java类库中的一个组件,它符合一些...
2. **JavaBean的创建和使用**:学习如何编写符合JavaBean规范的类,包括属性、构造函数、getter和setter方法,并在JSP中实例化和使用JavaBean。 3. **数据传递**:掌握如何在JSP页面和JavaBean之间传递数据,如通过...
接着,JavaBean将实现一个方法来查找第二个字符串在第一个字符串中的位置。这可以通过调用Java的内置`indexOf()`方法来完成,该方法返回子字符串在父字符串中首次出现的索引。如果未找到,则返回-1。例如: ```java...
我们将深入探讨JavaBean的特性、创建过程以及在实际应用中的使用方法。 首先,JavaBean遵循一定的规范,它必须是一个公共类(public class),并且具有无参数的构造函数。此外,它的属性通常被声明为私有的...
该类提供了getConn()方法来建立连接,executeQuery1()方法来执行查询,executeUpdate2()方法来执行更新,closeStmt()和closeConn()方法来关闭连接和语句。 使用JavaBean连接数据库的优点: * 封装数据库操作:...
2. **无参构造器**:JavaBean应提供一个无参数的构造函数,以便于实例化对象。 3. **序列化**:为了支持持久化或跨网络传输,JavaBean可以实现Serializable接口。 在用户管理的场景中,我们通常需要创建一个User类...