FileDocCategorySizeDatePackage
NumericField.javaAPI DocExample1314Tue Jul 01 14:26:28 BST 1997magicbeans

NumericField.java

package magicbeans;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.beans.*;

public class NumericField extends TextField {
	private double value;
    private PropertyChangeSupport propChanges = new PropertyChangeSupport(this);

    public NumericField() {
        enableEvents( AWTEvent.ACTION_EVENT_MASK );
    }
 
    public void processActionEvent(ActionEvent e) {
		try { 
			setValue( new Double( getText() ).doubleValue() );
		} catch ( NumberFormatException ex ) { 
			select(0, getText().length());
		}
        super.processActionEvent(e);
    }

	public double getValue() {
		return value;
	}
	public void setValue( double newValue ) {
		double oldValue = value;
		setText( "" + newValue );
		propChanges.firePropertyChange("value", 
			new Double(oldValue), new Double(newValue));
	}

	public void setColumns( int cols ) {
		super.setColumns( cols );
		Container parent = getParent();
		if ( parent != null ) {
			invalidate();
			parent.validate();
		}
	}

	public void addPropertyChangeListener(PropertyChangeListener listener) {
        propChanges.addPropertyChangeListener(listener);
    }
    public void removePropertyChangeListener(PropertyChangeListener listener) {
        propChanges.removePropertyChangeListener(listener);
	}

	//public void update( Graphics g ) { } 
}