auf tastatur reagieren
-
hallo
wie kann ich in der konsole auf eine Tastatur eingabe reagieren ohne die return taste zusätzlich zu betätigen.
-
Ich bin mir nicht sicher aber möglicherweise geht es mit dem InputStream ... nagel mich aber nicht darauf fest. Ansonsten würde ich sagen "Geht nicht"
-
wenn du ganz hart drauf bist könntest du dir nen eigenen Listener schreiben oder ein vorhandenen umbasteln (ableiten/erben) leider hab ich kein plan wie genau das gehen soll. aber schau mal in der javasun unter listener.
pain
-
JNI !
-
Also ich bin auch der meinung, dass es mit einem Inputstream gehen müßte.
Da machst du dann ganz einfach statt readline() ein read().
Dabei liest er dann nur ein Zeichen ein(egal welches).
Problem dabei ist nur, dass der Porzess auch solange wartet, bis die Eingabe Erfolgt ist....
-
ja das wäre auch gut so. das programm soll warten bis eine taste gedrückt wurde
-
Sowas geht nicht bei Streams! Könnt ihr vergessen!
-
import java.io.*; public class Message { /** * Only <u>default</u>-Constructor * @see java.lang.Object#Object() */ public Message() { System.out.println("Message Objekt erzeugt"); } /** * Method message. */ public char message() { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); try { char x = (char)bf.read(); return x; } catch (IOException e) { System.err.println("DummerFehler"); return 288; } } /** * Method main. * call method "message()" and print the return code it to console * @param args */ public static void main(String[] args) { char x = new Message().message(); System.out.println(x); } }
[ Dieser Beitrag wurde am 25.01.2003 um 12:30 Uhr von Ingo aka Desert Hawk editiert. ]
-
funktioniert so noch nicht ganz und zwar muss man jetzt noch enter drücken bis er die zeile ausgibt.
das programm sollte aber auf einzelne tasten reagieren ohne enter zu drücken.aber trotzdem danke für deine mühe
-
Ok, mag sein, dass das wirklich nicht geht ...
interessant wäre es ja noch zu wissen, warum es nicht geht.
Ich war fest der Meinung das mit Streams schon mal gemacht zu haben...
naja, lang lang ists herKann genau so gut sein, dass ich das damals auch nicht mit Java sondern mit C++ gemacht hab...
[ Dieser Beitrag wurde am 25.01.2003 um 12:44 Uhr von Ingo aka Desert Hawk editiert. ]
-
Das geht weder mit Java noch mit C++, weil beide die Input/Output Sachen mit Streams machen!
-
Original erstellt von <hello>:
Das geht weder mit Java noch mit C++, weil beide die Input/Output Sachen mit Streams machen!IMHO falsch! Du kannst es AFAIK mit C machen und C ist mehr oder weniger auch eine Teilmenge von C++. ...man konnte sich bei C++ ja nicht von C trennen!
-
Nö, es gibt ne Funktion getch() mit der man sowas machen kann. Die gehört aber nicht zum Standard und ist nur auf wenigen Compilern verfügbar! Mit Standard C/C++ geht sowas also nicht!
-
Ja, ok! Du hast mich überzeugt.
-
Das war ja einfach.
-
ok, aber warum geht das denn nun nicht?
-
Standand C/C++ use line-buffered I/O. This means that the input is not made available to your program until after you press the enter key. There is the way standard C++ works and there is no way around it within standard C++ (Although undoubtedly someone will say that is not true.)