Title:

Das Java Komponentenmodell: Java Beans

Home
deutsch
  
ISBN: 3828750281   ISBN: 3828750281   ISBN: 3828750281   ISBN: 3828750281 
 
  Wir empfehlen:       
  next up previous contents index
Next: Serialisierung Up: Programmbeispiele Previous: Gebundene Eigenschaften:

Eingeschraenkte Eigenschaften: Thermometer.java, Constrainer.java, Terra.java

  Thermometer.java
 
import java.beans.*;

public class Thermometer implements PropertyChangeListener{
    // Einschraenkung der Werte
    protected double minTemp = 18.0;
    protected double maxTemp = 30.0;
    final static double MIN = 10;
    final static double MAX = 35;
    
    // die aktuelle Temperatur
    protected Temperatur aktTemp;
    protected VetoableChangeSupport constraintHandler;
    
    public Thermometer(){
        this(25.0);
    }
    
    public Thermometer(double temperatur){
        aktTemp = new Temperatur(temperatur);
        constraintHandler = new VetoableChangeSupport(this);
    }
    
    // implementierung des PropertyChangeListener interfaces
    public void propertyChange(PropertyChangeEvent evt){
        // hier muesste noch implementiert werden
    }
    // implementierung des VetoableChangesupport
    public void addVetoableChangeListener(VetoableChangeListener l){
        // weiterreichen an den Handler
        constraintHandler.addVetoableChangeListener(l);
    }
    public void removeVetoableChangeListener(VetoableChangeListener l){
        // weiterreichen an den Handler
        constraintHandler.removeVetoableChangeListener(l);
    }
    // Zugriffsmethoden für die min und max Werte
    public double getMinimumTemperatur(){
        return minTemp;
    }
    
    public double getMaximumTemperatur(){
        return maxTemp;
    }
    public void setMinimumTemperatur(double value)
                                     throws PropertyVetoException{
        // intern einmal testen, ob der neue Wert
        // ok ist und ggf. veto ausloesen
        if (value>MAX || value<MIN ){ 
            throw new PropertyVetoException("Wert liegt ausserhalb des
            zulaessigen Bereiches(10-35)",
            new PropertyChangeEvent(this,"MinimumTemperature",
            new Double(minTemp),
            new Double(value)));
        }
        // ansonsten weiterreichen an Haendler (extern)
        constraintHandler.fireVetoableChange("MinimumTemperatur",
                         new Double(minTemp), new Double(value));
        // wenn keine Exception fliegt geht die Aenderung in Ordnung
        minTemp = value;
    }
    public void setMaximumTemperatur(double value) throws
                                     PropertyVetoException{
        // intern testen, ob der neue Wert ok ist und ggf. veto ausloesen
        if (value>MAX || value<MIN ){
            throw new PropertyVetoException("Wert liegt ausserhalb des
            zulaessigen Bereiches(10-35)", 
            new PropertyChangeEvent(this,"MinimumTemperature",
            new Double(minTemp),
            new Double(value)));
        }
        // ansonsten weiterreichen an Haendler
        constraintHandler.fireVetoableChange("MaximumTemperatur",
        new Double(maxTemp), new Double(value));
        // wenn keine Exception fliegt geht die Aenderung in Ordnung
        maxTemp = value;
    }
}

Constrainer.java

 
import java.beans.*;

public class Constrainer implements VetoableChangeListener{
    // implementieren des interface: VetoableChangeListener
    public void vetoableChange(PropertyChangeEvent evt)
                           throws PropertyVetoException{
    // die Limitierung wird getestet, liegt der Wert 
    // auch wirklich im Bereich (11 bis 33)
        double value = ((Double)evt.getNewValue()).doubleValue();
        if (value>33 || value<11){
           throw new PropertyVetoException("VETO von Constrainer: Wert "
                                               +value+" abgelehnt",evt);
        }else{
        System.out.println("Wert: "+value+" von Constrainer angenommen");
        }
    }
}


next up previous contents index
Next: Serialisierung Up: Programmbeispiele Previous: Gebundene Eigenschaften:
  
Java 2 (Broschiert)
von Ralf Jesse
Siehe auch:
Java Master Class. Einstieg für Anspruchsvolle
von Karsten Samaschke
Graphic Java 2.0. Die JFC beherrschen (AWT)
von Geary
The Definitive Guide to Java Swing
von John Zukowski
Java Swing.
von Marc Loy, u. a.
 
    
     

Back to the topic sites:
ScientificPublication.com/Startseite/Informatik/Programmieren
StudyPaper.com/Startseite/Computer/Informatik/Programmieren/Java
StudyPaper.com/Startseite/Computer

External Links to this site are permitted without prior consent.
   
  Home  |  deutsch  |  Set bookmark  |  Send a friend a link  |  Copyright ©  |  Impressum