⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intvaluebean.java

📁 java bean 编程程序
💻 JAVA
字号:
package chapter8;

import java.beans.*;
import java.io.*;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class IntValueBean
    extends JTextField implements Serializable, PropertyChangeListener,
    FocusListener
{
    private Color bgColor;
    private transient PropertyChangeSupport propertyChangeListeners = new
        PropertyChangeSupport(this);
    private int intValue;
    private transient VetoableChangeSupport vetoableChangeListeners = new
        VetoableChangeSupport(this);
    public IntValueBean()
    {
        this(0, 6);
    }

    public IntValueBean(int intValue, int size)
    {
        super("" + intValue, size);
        propertyChangeListeners.addPropertyChangeListener(this);
        this.addFocusListener(this);
    }

    private void readObject(ObjectInputStream ois)
        throws IOException, ClassNotFoundException
    {
        ois.defaultReadObject();
    }

    private void writeObject(ObjectOutputStream oos)
        throws IOException
    {
        oos.defaultWriteObject();
    }

    public synchronized void removePropertyChangeListener(
        PropertyChangeListener l)
    {
        super.removePropertyChangeListener(l);
        if (propertyChangeListeners == null)
        {
            propertyChangeListeners = new PropertyChangeSupport(this);
        }
        propertyChangeListeners.removePropertyChangeListener(l);
    }

    public synchronized void addPropertyChangeListener(PropertyChangeListener l)
    {
        super.addPropertyChangeListener(l);
        if (propertyChangeListeners == null)
        {
            propertyChangeListeners = new PropertyChangeSupport(this);
        }
        propertyChangeListeners.addPropertyChangeListener(l);
    }

    public void setBgColor(Color bgColor)
    {
        Color oldBgColor = this.bgColor;
        this.bgColor = bgColor;
        super.setBackground(bgColor);
        propertyChangeListeners.firePropertyChange("bgColor", oldBgColor,
            bgColor);
    }

    public void setIntValue(int intValue)
        throws PropertyVetoException
    {
        int oldIntValue = this.intValue;
        vetoableChangeListeners.fireVetoableChange("intValue",
            new Integer(oldIntValue), new Integer(intValue));
        this.intValue = intValue;
        propertyChangeListeners.firePropertyChange("intValue",
            new Integer(oldIntValue), new Integer(intValue));
    }

    public Color getBgColor()
    {
        return bgColor;
    }

    public int getIntValue()
    {
        return intValue;
    }

    public void propertyChange(PropertyChangeEvent evt)
    {
        if (evt.getSource() == this &&
            evt.getPropertyName().equalsIgnoreCase("bgColor"))
        {
            Color color = (Color) evt.getNewValue();
            Color newFgColor = new Color(255 - color.getRed(),
                                         255 - color.getGreen(),
                                         255 - color.getBlue());
            super.setForeground(newFgColor);
        }
        else if (evt.getSource() == this &&
                 evt.getPropertyName().equalsIgnoreCase("intValue"))
        {
            int tempValue = ( (Integer) evt.getNewValue()).intValue();
            super.setText("" + tempValue);
        }
    }

    public synchronized void removeVetoableChangeListener(
        VetoableChangeListener l)
    {
        super.removeVetoableChangeListener(l);
        vetoableChangeListeners.removeVetoableChangeListener(l);
    }

    public synchronized void addVetoableChangeListener(VetoableChangeListener l)
    {
        super.addVetoableChangeListener(l);
        vetoableChangeListeners.addVetoableChangeListener(l);
    }

    //将文本框中的文本转换为整数值,若转换不成功,赋予0值
    public int getValue()
    {
        try
        {
            return Integer.parseInt(getText());
        }
        catch (NumberFormatException ex)
        {
            return intValue = 0;
        }
    }

    //当光标移入时,获取整数值
    public void focusGained(FocusEvent e)
    {
        if (!e.isTemporary())
        {
            intValue = getValue();
        }
    }

    //当光标移出时,获取整数值
    public void focusLost(FocusEvent e)
    {
        if (!e.isTemporary())
        {
            Integer oldValue = new Integer(intValue);
            Integer newValue = new Integer(getValue());
            try
            {
                vetoableChangeListeners.fireVetoableChange("intValue", oldValue,
                    newValue);
                this.intValue = getValue();
                propertyChangeListeners.firePropertyChange("intValue", oldValue,
                    newValue);
            }
            catch (PropertyVetoException ex)
            {
                JOptionPane.showMessageDialog(this, ex.toString(), "输入错误",
                                              JOptionPane.WARNING_MESSAGE);
                setText("" + intValue);
                requestFocus();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -