Autor Wątek: Wykrycie naciśnięcia klawisza w konsoli.  (Przeczytany 1522 razy)

Offline prociomen007

  • Użytkownik

# Listopad 20, 2011, 22:23:28
Mam pytanie czy w java wersja najnowsza 1.7.0.1 istnieje możliwość pobrania naciśniętego klawisza bez potwierdzania go ENTER'em? Chodzi mi o odpowiednik c++ "getc()". Doszły mnie słuchy że nie ma takiej możliwości. Czy to prawda? Jeśli tak czy istniej możliwość   dopisania sobie tego w innym języku? Jeśli tak to jak zrobić to najprościej. Jakieś obiekty COM?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Avaj

  • Użytkownik

# Listopad 20, 2011, 22:55:43
System.in.read() nie działa?

Offline prociomen007

  • Użytkownik

# Listopad 20, 2011, 22:59:24
Nie system read musi być ENTER potwierdzony.

Offline soku11

  • Użytkownik

# Listopad 22, 2011, 23:34:41
Na stronie oracle masz napisane co się zmieniło w nowej wersji Javy. Nie ma tam mowy o zmianach tego typu. Ogólnie problem, który masz jest nierozwiązany. Wynika to z tego, że nie jest związany z czystą Javą. W standardzie (tak jak w C/C++) piszesz aplikację strumieniową. Zachowanie, którego wymagasz jest natomiast konsolowe. Czegoś takiego w standardzie Javy nie ma. Ba - nawet nie ma gwarancji, że uruchamiasz programik z konsoli.
Aby takie coś zdziałać trzeba wyłączyć buforowanie konsoli. Z tego co znalazłem istnieje takie coś jak Curses z C/C++ i nazywa się ... JCurses :) Przeczytaj tutaj:

http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/


Btw. Czemu potrzebujesz takego wczytywania znaków?