keyboardapiadapter.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 78 行

JAVA
78
字号
/*
 * $Id: KeyboardAPIAdapter.java,v 1.2 2004/02/08 17:53:40 mdenty Exp $
 */
package org.jnode.driver.input;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * @author Ewout Prangsma (epr@users.sourceforge.net)
 */
public class KeyboardAPIAdapter implements KeyboardAPI {

	/** All listeners */
	private final ArrayList listeners = new ArrayList();
	/** The interpreter */
	private KeyboardInterpreter interpreter = null/*new KeyboardInterpreter()*/;

	/**
	 * @see org.jnode.driver.input.KeyboardAPI#addKeyboardListener(org.jnode.driver.input.KeyboardListener)
	 */
	public synchronized void addKeyboardListener(KeyboardListener l) {
		listeners.add(l);
	}

	/**
	 * @see org.jnode.driver.input.KeyboardAPI#getKbInterpreter()
	 */
	public KeyboardInterpreter getKbInterpreter() {
		return interpreter;
	}

	/**
	 * @see org.jnode.driver.input.KeyboardAPI#removeKeyboardListener(org.jnode.driver.input.KeyboardListener)
	 */
	public synchronized void removeKeyboardListener(KeyboardListener l) {
		listeners.remove(l);
	}

	/**
	 * @see org.jnode.driver.input.KeyboardAPI#setKbInterpreter(org.jnode.driver.input.KeyboardInterpreter)
	 */
	public void setKbInterpreter(KeyboardInterpreter kbInterpreter) {
		if (kbInterpreter == null) {
			throw new IllegalArgumentException("kbInterpreter==null");
		}
		this.interpreter = kbInterpreter;
	}

	/**
	 * Remove all listeners.
	 */
	public synchronized void clear() {
		listeners.clear();
	}

	/**
	 * Fire a given pointer event to all known listeners.
	 *
	 * @param event
	 */
	public synchronized void fireEvent(KeyboardEvent event) {
		if (event != null) {
			for (Iterator i = listeners.iterator(); i.hasNext();) {
				KeyboardListener l = (KeyboardListener) i.next();
				if (event.isKeyPressed()) {
					l.keyPressed(event);
				} else if (event.isKeyReleased()) {
					l.keyReleased(event);
				}
				if (event.isConsumed()) {
					break;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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