consoleinputstream.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 71 行
JAVA
71 行
/*
* $Id: ConsoleInputStream.java,v 1.1 2003/11/25 11:42:10 epr Exp $
*/
package org.jnode.driver.console;
import java.io.IOException;
import java.io.InputStream;
import org.jnode.driver.input.KeyboardEvent;
import org.jnode.driver.input.KeyboardListener;
import org.jnode.util.Queue;
/**
* @author epr
*/
public class ConsoleInputStream extends InputStream implements KeyboardListener {
private final Queue queue = new Queue();
private boolean echo = false;
public ConsoleInputStream(Console console) {
console.addKeyboardListener(this);
}
/**
* @see java.io.InputStream#available()
* @return Available bytes
* @throws IOException
*/
public int available() throws IOException {
return queue.size();
}
/**
* @see java.io.InputStream#read()
* @return int
* @throws IOException
*/
public int read() throws IOException {
while (true) {
KeyboardEvent event = (KeyboardEvent)queue.get();
if (!event.isConsumed()) {
event.consume();
char ch = event.getKeyChar();
if (ch != 0) {
if (echo) {
System.out.print(ch);
}
return ch;
}
}
}
}
/**
* @param event
* @see org.jnode.driver.input.KeyboardListener#keyPressed(org.jnode.driver.input.KeyboardEvent)
*/
public void keyPressed(KeyboardEvent event) {
//log.debug("got event(" + event + ")");
queue.add(event);
}
/**
* @param event
* @see org.jnode.driver.input.KeyboardListener#keyReleased(org.jnode.driver.input.KeyboardEvent)
*/
public void keyReleased(KeyboardEvent event) {
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?