在一个Bean中设置关联属性的基本步骤如下:
调入java.beans 包,以便访问该包中所定义的一些方便类。MyButton中的import语句的使用方法如下:
import java.beans.*;
实例化java.beans.PropertyChangeSupport类。
private PropertyChangeSupport changes = new
PropertyChangeSupport(this);
MyButton创建了一个名为changes的新对象,它是PropertyChangeSupport类的实例,变量changes保存的是监听对象的集合,一旦关联属性发生变化,就会通知到这些对象。该变量定义了两个支持的方法: addPropertyChangeListener和 removePropertyChangeListener,这两个方法提供了公共的接口,可以让感兴趣的监听者对MyButton进行注册。
实现由PropertyChangeSupport 类定义的方法。
PropertyChangeSupport类包含了添加和移去监听对象的方法,尤其是PropertyChangeListener对象。AddPropertyChangeListener方法添加一个新的监听对象到表中,而removePropertyChangeListener方法则从表中移去一个监听对象。PropertyChangeSupport 类也包含第三个方法:firePropertyChange,该方法把PropertyChangeEvent对象发送给感兴趣的监听者。MyButton包含的实现添加和移去监听者方法的代码如下:
注意:参数l 表示property change listener Bean,该Bean可以作为注册或者移去其兴趣。
public void addPropertyChangeListener(
PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
}public void removePropertyChangeListener(
PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}
修改Bean的关联属性的setter方法。
对于那些打算成为关联属性的属性,可以修改Bean的setter方法,以便包含当属性值变化时就发送事件的代码。MyButton在每一个设置新属性值的方法内调用firePropertyChange方法。例如,当一个应用程序或者用户改变了按钮的字体时,这个动作就执行了MyButton.setFont方法。因为firePropertyChange方法对于变化了的属性的新值和旧值都需要, setFont方法首先通过调用getFont方法获得旧值,之后设置新值,改变了原先的值之后,再调用changes.firePropertyChange方法通知感兴趣的监听者。changes.firePropertyChange方法传递了三个参数:发生变化的属性名,属性的旧值,该属性的新值。
public void setFont(Font f) {
Font old = getFont();
super.setFont(f);
sizeToFit();
changes.firePropertyChange(
"font", old, f);
}
对于firePropertyChange方法来说,它完成了哪些事情?该方法把它的三个参数绑定到一个PropertyChangeEvent对象中。之后把PropertyChangeEvent对象作为参数,调用propertyChange方法。把PropertyChangeEvent对象传递给每个注册过的监听者。记住:propertyChange把属性的旧值和新值作为对象值对待。这一点很重要,如果你的属性值是个简单类型,你就必须对该类型重新定义为对象,例如,一个简单的整数类型,在调用firePropertyChange之前,就要转化为java.lang.Integer。
记住:对于关联属性来说,首先是属性值发生变化,之后才发送属性变化事件。
分享到:
相关推荐
1. `@OneToOne`: 用于配置一对一关联,可以使用`mappedBy`属性来指定另一方的引用字段。 2. `@OneToMany`: 配置一对多关联,通常配合`@JoinColumn`或`@JoinTable`使用,用于指定外键列。 3. `@ManyToOne`: 多对一...
在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中嵌入信息的方式,这些信息可以被编译器、JVM或其他...合理利用注解,可以更好地实现JavaBean与数据库字段的关联,是现代Java开发不可或缺的一部分。
- 接着,设计报表模板,添加所需的文本框、表格等元素,并将它们与JavaBean的属性关联。 - 编写Java代码来执行报表,这可能涉及到一个查询方法,从数据库或其他来源获取数据并转换为JavaBean集合。 - 最后,运行...
3. 使用`<jsp:setProperty>`和`<jsp:getProperty>`标签设置和获取JavaBean的属性值。 4. 调用JavaBean的方法执行业务逻辑。 JavaBean的优势在于它们提高了代码的可复用性和可维护性。它们将数据和业务逻辑分离,...
1. **设计报表**: 使用ireport打开.jrxml文件,设计报表布局,添加字段和计算字段,关联JavaBean属性。 2. **配置数据源**: 在ireport中,可以设置JavaBean数据源,指定JavaBean类名和属性映射。 3. **生成.jasper...
JavaBean的属性类似于类的私有或受保护的成员变量,但外部访问这些属性需通过一对访问方法,即获取器(getter)和设置器(setter)。根据特性,JavaBean的属性可以分为以下四类: 1. Simple属性:具有一个get和set...
- 数据绑定:将用户界面元素的数据与JavaBean的属性关联。 - 数据存储:作为持久化层的中间对象,保存和加载用户数据。 - 业务逻辑封装:实现复杂的功能,如计算、验证等。 - 页面跳转控制:在MVC架构中,JavaBean...
开发者可以通过getter和setter方法来读取和设置javabean中的属性,从而在报表中展示这些数据。 在这个项目中,通过以下步骤实现了报表的可视化: - **设计报表模板**:首先,开发者使用ireport来设计报表的布局和...
例如,通过setter方法动态设置属性值。 二、JavaBean理解 JavaBean是符合特定规范的Java类,通常用于数据封装。它具有以下特点: - 公共类。 - 具有一个无参构造函数。 - 属性私有化,提供getter和setter方法进行...
2. 方法:`getters`和`setters`用于访问和设置这些属性的值;`saveMessage()`用于将留言保存到数据库;`loadMessages()`用于从数据库加载所有留言。 在JSP页面中,我们可以通过以下方式使用JavaBean: ```jsp ``...
以上JavaBean实例展示了如何利用面向对象编程的原则(如封装、继承、关联关系)来设计和实现类。通过将数据和行为封装在一起,提高了代码的可读性和可维护性。在实际项目中,这些JavaBean类可以作为模型层的一部分,...
首先,我们需要创建一个JavaBean类,包含与报表相关联的数据字段。例如,如果报表要展示员工信息,可以创建一个`Employee`类,包含`id`、`name`、`department`等属性,并提供getter和setter方法。 3. **设置数据源...
- **`<jsp:setProperty>`**:设置JavaBean的属性值。 - **`<jsp:getProperty>`**:获取JavaBean的属性值。 示例代码如下: ```jsp ``` 这里,`<jsp:useBean>`标签创建了一个名为`myBean`的JavaBean实例;`...
在表单数据封装过程中,这些方法会被用来设置和获取属性值。 4. **前端框架集成**: 当前,许多Web应用采用前端框架(如Angular、React或Vue.js)进行视图层的构建。这些框架同样支持数据绑定,可以与后端的...
在`HtmlCalendarNotePad`类中,我们定义了一些属性(例如年份、月份等)以及用于设置和获取这些属性的方法(如`setYear`、`getYear`等)。 #### 2. **属性与方法** - **年份和月份的管理**: - `public void ...
本资料“13_JPA详解_JPA中的多对多双向关联实体定义与注解设置”专注于讲解JPA如何处理多对多双向关联关系,这是数据库设计中常见的一种复杂关联类型。下面我们将详细探讨这一主题。 首先,我们需要理解多对多关联...
5. **MVC模式**:在新闻发布系统中,JavaBean可能与Model层关联,配合视图(View)和控制器(Controller)实现MVC(模型-视图-控制器)架构。Model负责业务逻辑和数据管理,View负责展示数据,Controller则处理用户请求...
1. **视图-模型(View-Model)绑定**:在MVC架构中,JavaBean常作为模型层,它的属性可以直接与视图组件关联,方便数据的展示和用户输入的处理。 2. **EJB(Enterprise JavaBeans)组件**:在企业级开发中,JavaBean...
JavaBean遵循一定的规范,如公开默认构造器、属性和getter/setter方法,使得它们可以被方便地在JSP中使用,或者通过其他Java代码进行操作。 **MySQL数据库** MySQL是一种关系型数据库管理系统,被广泛用于存储和...
3. 分类管理:新闻通常会被分类管理,JavaBean可以封装分类信息,支持创建、修改和删除分类,以及关联新闻与分类的关系。 4. 操作日志:为了追踪系统的操作记录,可能会有专门的日志JavaBean来记录用户的操作行为,...