Java Reference
In-Depth Information
private String ourString;
private ArrayList<PropertyChangeListener> changeListeners;
private ArrayList<VetoableChangeListener> vetoListeners;
...
public void setOurString(String newString)
{
try
{
String oldString = ourString;
PropertyChangeEvent event =
new PropertyChangeEvent(this, "ourString",
oldString, newString);
for(VetoableChangeListener l: vetoListeners)
{
l.vetoableChange(event);
}
ourString = newString;
for(PropertyChangeListener l: changeListeners)
{
l.propertyChange(event);
}
}
catch (PropertyVetoException e)
{
}
}
...
}
Die Initialisierung des zusätzlichen Attributs im Konstruktor, die neuen Methoden zum An-
und Abmelden von VetoableChangeListenern sowie die von Listing 8.1 unverä ndert übernom-
menen Methoden sind in Listing 8.2 nicht dargestellt. Die interessanteste Methode ist die
Methode setOurString. Vor der Änderung wird die Methode vetoableChange bei allen ange-
meldeten VetoChangeListenern aufgerufen. Wenn einer davon eine Ausnahme wir , wird die
Ausführung der Methode setOurString beendet. Andernfalls wird der Attributwert geändert
und alle angemeldeten PropertyChangeListener werden über diese Änderung informiert.
Im Package java.beans gibt es die Klassen PropertyChangeSupport und VetoableChange-
Support, die das An- und Abmelden sowie das Benachrichtigen der entsprechenden Liste-
ner unterstützen.
8 . 3 BeanInfo
Durch das Hinzufügen einer BeanInfo-Klasse kann man zusätzliche Informationen zu einer
Bean-Klasse angeben. Der Name der BeanInfo-Klasse muss sich zusammensetzen aus dem
Namen der Bean-Klasse, die beschrieben wird, und dem Su ® x „BeanInfo“ (zur Bean-Klasse
p1.p2.Example beispielsweise gehört also p1.p2.ExampleBeanInfo). Falls eine BeanInfo-
 
Search WWH ::




Custom Search