10-5.txt

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

TXT
65
字号
……
	}

[*源程序清单10-5*]

private Vector keyListeners;

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);
  }
}

然后注册事件监听器,说明将该事件源所发生的事件向什么组件发送,即在事件源组件中实现方法并在监听组件中注册该事件源。
//注册键盘事件
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;
  }
}

⌨️ 快捷键说明

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