【发布时间】:2012-06-12 15:31:39
【问题描述】:
我正在寻找有关如何将System.in 替换为直接从JTextField 读取的InputStream 的方向。
到目前为止,我的方法几乎都是反复试验。我目前有;
JTextField input = new JTextField();
System.setIn(new InputStream() {
int ptr = 0;
@Override
public int read() throws IOException {
int c;
try {
c = input.getText().charAt(ptr);
}
catch (IndexOutOfBoundsException ioob) {
return 0;
}
ptr++;
return c;
}
});
这会产生一个NoSuchElementException,因为当输入为空并且我假设永远找不到分隔符时尝试读取。
我缺少什么方法?
【问题讨论】:
-
为什么不直接使用
KeyListener来检测每个键入的键? -
@evanwong 你能建议如何将它绑定到输入流吗?
标签: java input inputstream system.in