auf tastatur reagieren



  • 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 her 😃

    Kann 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!


  • Mod

    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!


  • Mod

    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.)


Anmelden zum Antworten