//file: Multiplier.java
package magicbeans;
import java.beans.*;
public class Multiplier implements java.io.Serializable {
private double a, b, c;
synchronized public void setA( double val ) {
a = val;
multiply( );
}
synchronized public double getA( ) {
return a;
}
synchronized public void setB( double val ) {
b = val;
multiply( );
}
synchronized public double getB( ) {
return b;
}
synchronized public double getC( ) {
return c;
}
private void multiply( ) {
double oldC = c;
c = a * b;
propChanges.firePropertyChange(
"c", new Double(oldC), new Double(c));
}
private PropertyChangeSupport propChanges =
new PropertyChangeSupport(this);
public void
addPropertyChangeListener(PropertyChangeListener listener) {
propChanges.addPropertyChangeListener(listener);
}
public void
removePropertyChangeListener(PropertyChangeListener listener) {
propChanges.removePropertyChangeListener(listener);
}
}
|