Beans - bound Property
Jeg har oprettet en "Person"-klasse og en "TestPerson"-klasse. "Person"-klassen er en bean. Mit problem er at jeg ikke kan få dens bound Property til at virke! I min "TestPerson"-klasse har jeg forsøgt at tilknytte en PropertyChangeListener, men der skives intet ud i consolen når "TestPerson"-klassen køres?! hvad har jeg gjort galt!?:-)-----------------------------------------------------------------
Person
-----------------------------------------------------------------
package d_07_09_14_JavaBeans;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.List;
import java.util.ArrayList;
public class Person {
private String navn;
private int alder;
private String adresse;
private PropertyChangeSupport changes = new PropertyChangeSupport(this);
private List<AgeErrorListener> listner = new ArrayList<AgeErrorListener>();
public Person() {
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
// save current value of property
String oldValue = this.adresse;
// assign new value of property
this.adresse = adresse;
// send change event to listeners, because the property has changed
changes.firePropertyChange("string", oldValue, adresse);
}
public int getAlder() {
return alder;
}
public void setAlder(int alder) {
this.alder = alder;
// save current value of property
int oldValue = this.alder;
// assign new value of property
this.alder = alder;
// send change event to listeners, because the property has changed
changes.firePropertyChange("string", oldValue, alder);
if (!tjekAlder(alder)) {
fireAgeErrorEvent(new AgeErrorEvent(this));
}
}
private boolean tjekAlder(int alder) {
if (alder > 141 || alder < 0) {
return false;
} else
return true;
}
public String getNavn() {
return navn;
}
public void setNavn(String navn) {
this.navn = navn;
// save current value of property
String oldValue = this.navn;
// assign new value of property
this.navn = navn;
// send change event to listeners, because the property has changed
changes.firePropertyChange("string", oldValue, navn);
}
public void addPropertyChangeListener(PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}
public void addAgeErrorListener(AgeErrorListener arg0) {
listner.add(arg0);
}
public void removeAgeErrorListener(Object arg0) {
listner.remove(arg0);
}
public void fireAgeErrorEvent(AgeErrorEvent e) {
for (int i = 0; listner.size() > i; i++) {
listner.get(i).ageError(e);
}
}
}
-----------------------------------------------------------------
TestPerson
-----------------------------------------------------------------
package d_07_09_14_JavaBeans;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class TestPerson {
/**
* @param args
*/
public static void main(String[] args) {
Person p1 = new Person();
p1.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent arg0) {
System.out.println("Alder er ændret!");
}
});
p1.addAgeErrorListener(new AgeErrorListener() {
public void ageError(AgeErrorEvent e) {
System.out.println("Forkert Alder!");
}
});
p1.setAlder(12);
p1.setAlder(112);
p1.setAlder(2);
}
}