Mon programme se connecte à UNIX/PUTTY afin d'exécuter des commandes via une interface graphique personnalisée. J'ai un JTextArea comme OutputStream et un JTextField comme InputStream.Java JTextField en tant que InputStream. 'ENTER' ne fonctionne pas comme entrer
La sortie fonctionne comme prévu, mais le flux d'entrée ne fonctionne pas. Pour que la commande soit exécutée sous UNIX, il faut appuyer sur la touche ENTRÉE, mais la touche d'entrée ne fonctionne pas comme prévu.
Voici mon code:
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++];
}
Je suis en train de passer le « \ n » char comme le ENTRER, mais ne semble pas fonctionner. Il entre dans l'instruction if et réinitialisera le champ de texte à "". Mais '\ n' toBytes() ne semble pas être interprété par le flux d'entrée comme une entrée. Toute aide serait grandement appréciée. Thankyou :)
https://stackoverflow.com/questions/16378888/how-to-get-a-jtextfield-to-respond-to-the-enter-key – Reimeus