java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.beans
类 PropertyChangeSupport

java.lang.Object
  继承者 java.beans.PropertyChangeSupport
所有已实现的接口:
Serializable
直接已知子类:
SwingPropertyChangeSupport

public class PropertyChangeSupport
extends Object
implements Serializable

这是一个实用工具类,支持 bound 属性的 bean 可以使用该类。可以使用此类的实例作为 bean 的成员字段,并将各种工作委托给它。 此类是可序列化的。在对它进行序列化时,它将保存(并恢复)本身可序列化的所有侦听器。在序列化期间,将跳过所有不可序列化的侦听器。

另请参见:
序列化表格

构造方法摘要
PropertyChangeSupport(Object sourceBean)
          构造一个 PropertyChangeSupport 对象。
 
方法摘要
 void addPropertyChangeListener(PropertyChangeListener listener)
          向侦听器列表添加一个 PropertyChangeListener。
 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          为指定的属性向侦听器列表中添加一个 PropertyChangeListener。
 void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
          以 boolean 值形式报告所有已注册侦听器的 bound indexed 属性更新。
 void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
          以 int 值形式报告所有已注册侦听器的 bound indexed 属性更新。
 void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
          报告所有已注册侦听器的 bound indexed 属性更新。
 void firePropertyChange(PropertyChangeEvent evt)
          对所有已注册侦听器激发一个现有 PropertyChangeEvent。
 void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
          以 boolean 值形式报告所有已注册侦听器的 bound 属性更新。
 void firePropertyChange(String propertyName, int oldValue, int newValue)
          以 int 值形式报告所有已注册侦听器的 bound 属性更新。
 void firePropertyChange(String propertyName, Object oldValue, Object newValue)
          报告所有已注册侦听器的 bound 属性更新。
 PropertyChangeListener[] getPropertyChangeListeners()
          返回使用 addPropertyChangeListener() 添加到此 PropertyChangeSupport 对象中的所有侦听器组成的数组。
 PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
          返回与指定属性相关联的所有侦听器的列表。
 boolean hasListeners(String propertyName)
          检查是否存在特定属性的任何侦听器,包括那些已在所有属性上注册的侦听器。
 void removePropertyChangeListener(PropertyChangeListener listener)
          从侦听器列表移除一个 PropertyChangeListener。
 void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
          为特定属性移除一个 PropertyChangeListener。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

PropertyChangeSupport

public PropertyChangeSupport(Object sourceBean)
构造一个 PropertyChangeSupport 对象。

参数:
sourceBean - 作为所有事件的源提供的 bean。
方法详细信息

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
向侦听器列表添加一个 PropertyChangeListener。该侦听器是为所有属性注册的。同一侦听器对象可以被添加多次,并且它们被调用的次数与添加它们的次数相同。如果 listener 为 null,则不会抛出异常并且不执行操作。

参数:
listener - 要添加的 PropertyChangeListener

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表移除一个 PropertyChangeListener。此方法移除一个为所有属性注册的 PropertyChangeListener。如果将 listener 多次添加到同一事件源,则在被移除之后,它至少将被通知一次。如果 listener 为 null,或者从未被添加,则不会抛出异常并且不执行操作。

参数:
listener - 要移除的 PropertyChangeListener

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
返回使用 addPropertyChangeListener() 添加到此 PropertyChangeSupport 对象中的所有侦听器组成的数组。

如果已经使用指定属性添加一些侦听器,则返回的数组将是 PropertyChangeListeners 和 PropertyChangeListenerProxy 的混合物。如果调用方法对区别侦听器感兴趣,那么它必须测试每个元素,以查看该元素是否是一个 PropertyChangeListenerProxy,然后执行强制转换并检查该参数。

 PropertyChangeListener[] listeners = bean.getPropertyChangeListeners();
 for (int i = 0; i < listeners.length; i++) {
         if (listeners[i] instanceof PropertyChangeListenerProxy) {
     PropertyChangeListenerProxy proxy = 
                    (PropertyChangeListenerProxy)listeners[i];
     if (proxy.getPropertyName().equals("foo")) {
       // proxy is a PropertyChangeListener which was associated
       // with the property named "foo"
     }
   }
 }

返回:
添加的所有 PropertyChangeListeners,如果没有添加侦听器,则返回一个空数组
从以下版本开始:
1.4
另请参见:
PropertyChangeListenerProxy

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
为指定的属性向侦听器列表中添加一个 PropertyChangeListener。该侦听器只在调用 firePropertyChange 为特定属性命名时调用。可以多次添加同一侦听器对象。对于每个属性,该侦听器被调用的次数与为该属性添加此侦听器的次数相同。如果 propertyNamelistener 为 null,则不会抛出异常并且不执行操作。

参数:
propertyName - 要侦听的属性的名称。
listener - 要添加的 PropertyChangeListener

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName,
                                         PropertyChangeListener listener)
为特定属性移除一个 PropertyChangeListener。如果将 listener 多次添加到指定属性的同一事件源,则在被移除之后,它至少将被通知一次。如果 propertyName 为 null,则不会抛出异常并且不执行操作。如果 listener 为 null,或者从不为指定属性添加 pcl,则不抛出异常并不执行任何操作。

参数:
propertyName - 已被侦听的属性的名称。
listener - 要移除的 PropertyChangeListener

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
返回与指定属性相关联的所有侦听器的列表。

参数:
propertyName - 将被侦听的属性的名称
返回:
与指定属性相关联的所有 PropertyChangeListeners。如果没有添加这样的侦听器,或者如果 propertyName 为 null,则返回一个空数组。

firePropertyChange

public void firePropertyChange(String propertyName,
                               Object oldValue,
                               Object newValue)
报告所有已注册侦听器的 bound 属性更新。如果新属性和旧属性相同并且是非 null 的,则不会触发事件。

参数:
propertyName - 被更改属性的编程名称。
oldValue - 属性的旧值。
newValue - 属性的新值。

firePropertyChange

public void firePropertyChange(String propertyName,
                               int oldValue,
                               int newValue)
以 int 值形式报告所有已注册侦听器的 bound 属性更新。如果新属性和旧属性相同并且是非 null 的,则不会触发事件。

这只是一个用来包装获取 Object 值的更常见 firePropertyChange 方法的便捷包装器。

参数:
propertyName - 被更改属性的编程名称。
oldValue - 属性的旧值。
newValue - 属性的新值。

firePropertyChange

public void firePropertyChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
以 boolean 值形式报告所有已注册侦听器的 bound 属性更新。如果新属性和旧属性相同并且是非 null 的,则不会触发事件。

这只是一个用来包装获取 Object 值的更常见 firePropertyChange 方法的便捷包装器。

参数:
propertyName - 被更改属性的编程名称。
oldValue - 属性的旧值。
newValue - 属性的新值。

firePropertyChange

public void firePropertyChange(PropertyChangeEvent evt)
对所有已注册侦听器激发一个现有 PropertyChangeEvent。如果给定事件的旧值和新值相等并且都是非 null 的,则不会激发事件。

参数:
evt - PropertyChangeEvent 对象。

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      Object oldValue,
                                      Object newValue)
报告所有已注册侦听器的 bound indexed 属性更新。

如果旧值和新值相等并且都是非 null 的,则不会激发事件。

参数:
propertyName - 被更改属性的编程名称。
index - 被更改属性元素的索引。
oldValue - 属性的旧值。
newValue - 属性的新值。
从以下版本开始:
1.5

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      int oldValue,
                                      int newValue)
int 值形式报告所有已注册侦听器的 bound indexed 属性更新。

如果旧值和新值相等并且都是非 null 的,则不会激发事件。

这只是一个用来包装获取 Object 值的更常见 fireIndexedPropertyChange 方法的便捷包装器。

参数:
propertyName - 被更改属性的编程名称。
index - 被更改属性元素的索引。
oldValue - 属性的旧值。
newValue - 属性的新值。
从以下版本开始:
1.5

fireIndexedPropertyChange

public void fireIndexedPropertyChange(String propertyName,
                                      int index,
                                      boolean oldValue,
                                      boolean newValue)
boolean 值形式报告所有已注册侦听器的 bound indexed 属性更新。

如果旧值和新值相等并且都是非 null 的,则不会激发事件。

这只是一个用来包装获取 Object 值的更常见 fireIndexedPropertyChange 方法的便捷包装器。

参数:
propertyName - 被更改属性的编程名称。
index - 被更改属性元素的索引。
oldValue - 属性的旧值。
newValue - 属性的新值。
从以下版本开始:
1.5

hasListeners

public boolean hasListeners(String propertyName)
检查是否存在特定属性的任何侦听器,包括那些已在所有属性上注册的侦听器。如果 propertyName 为 null,则只检查所有属性上注册的侦听器。

参数:
propertyName - 属性名。
返回:
如果存在给定属性的一个或多个侦听器,则返回 true

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策