textbean.java

来自「java网络高级编程的配套源码,java网络高级编程为清华出版社出版.」· Java 代码 · 共 100 行

JAVA
100
字号
/*源代码清单10-13*/

package bean;

import java.awt.TextField;
import java.beans.*;
import java.awt.event.*;
import java.util.*;

public class TextBean extends TextField {
  private String showText;
  private PropertyChangeSupport changes=new PropertyChangeSupport(this);
  private transient Vector keyListeners;

  public TextBean(MainFrame frame)
  {
    this.addPropertyChangeListener(frame);
    this.addKeyListener(frame);
  }

  public String getShowText()
  {
    return showText;
  }

  public void setShowText(String newShowText)
  {
    String oldShowText=showText;
    showText=newShowText;
    setText(showText);
    changes.firePropertyChange("showText",oldShowText,newShowText);
  }

  public void addPropertyChangeListener(PropertyChangeListener l)
  {
    changes.addPropertyChangeListener(l);
  }

  public void removePropertyChangeListener(PropertyChangeListener l)
  {
    changes.removePropertyChangeListener(l);
  }

  public synchronized void removeKeyListener(KeyListener l)
  {
    super.removeKeyListener(l);
    if (keyListeners != null && keyListeners.contains(l))
    {
      Vector v = (Vector) keyListeners.clone();
      v.removeElement(l);
      keyListeners = v;
    }
  }

  public synchronized void addKeyListener(KeyListener l)
  {
    super.addKeyListener(l);
    Vector v = keyListeners == null ? new Vector(2) : (Vector) keyListeners.clone();
    if (!v.contains(l))
    {
      v.addElement(l);
      keyListeners = v;
    }
  }

  protected void fireKeyTyped(KeyEvent e)
  {
    if (keyListeners != null)
    {
      Vector listeners = keyListeners;
      int count = listeners.size();
      for (int i = 0; i < count; i++)
        ((KeyListener) listeners.elementAt(i)).keyTyped(e);
    }
  }

  protected void fireKeyPressed(KeyEvent e)
  {
    if (keyListeners != null)
    {
      Vector listeners = keyListeners;
      int count = listeners.size();
      for (int i = 0; i < count; i++)
        ((KeyListener) listeners.elementAt(i)).keyPressed(e);
    }
  }

  protected void fireKeyReleased(KeyEvent e)
  {
    if (keyListeners != null)
    {
      Vector listeners = keyListeners;
      int count = listeners.size();
      for (int i = 0; i < count; i++)
        ((KeyListener) listeners.elementAt(i)).keyReleased(e);
    }
  }
}

⌨️ 快捷键说明

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