我的程序连接到UNIX/PUTTY以通过自定义GUI执行命令。我有一个JTextArea作为我的OutputStream和一个JTextField作为我的InputStream。Java JTextField作为InputStream。输入'ENTER'不起作用
输出按预期运行,但输入流不是。为了在UNIX内执行该命令,它需要按下ENTER键,但是回车键并未按预期运行。
这里是我的代码:
public class JTextFieldInputStream extends InputStream {
byte[] contents;
int pointer = 0;
String toBytes = "";
public JTextFieldInputStream(final JTextField text) {
text.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyChar()=='\n'){
toBytes = text.getText()+'\n';
contents = toBytes.getBytes();
pointer = 0;
text.setText("");
toBytes = "";
}
super.keyReleased(e);
}
});
}
@Override
public int read() throws IOException {
if(pointer >= contents.length) return -1;
return this.contents[pointer++];
}
我试图通过“\ n”字符作为进入,但似乎并不奏效。它进入if语句并将文本字段重置为“”。但'\ n'toBytes()似乎不被输入流解释为输入按。 任何帮助将不胜感激。谢谢:)
https://stackoverflow.com/questions/16378888/how-to-get-a-jtextfield-to-respond-to-the-enter-key – Reimeus