私のプログラムは、カスタムGUIでコマンドを実行するためにUNIX/PUTTYに接続します。私は、私のOutputStreamとしてJTextAreaを、InputStreamとしてJTextFieldを持っています。Java JTextFieldをInputStreamとして使用します。 'ENTER'が入力として機能しない
出力は期待どおり機能していますが、入力ストリームは機能していません。 UNIX内でコマンドを実行するには、ENTERキーを押す必要がありますが、Enterキーは期待通りに機能していません。私が入ると「\ n」の文字をパスしようとしていますが、動作していないようです
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++];
}
:
は、ここに私のコードです。それはifステートメントに入り、テキストフィールドを ""にリセットします。しかし、 '\ n' toBytes()は、入力ストリームによって入力エンティティとして解釈されないようです。 ご協力いただければ幸いです。ありがとうございました:)
https://stackoverflow.com/questions/16378888/how-to-get-a-jtextfield-to-respond-to-the-enter-key – Reimeus