Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   readkey unter JAVA (https://www.delphipraxis.net/18754-readkey-unter-java.html)

Dannyboy 24. Mär 2004 10:41


readkey unter JAVA
 
Hallo zusammen,
wer Turbo Pascal noch kennt, der weiss, dass das gute, alte READKEY
ein Zeichen von der Tastatur einliest und zwar OHNE ECHO und
OHNE Return-Taste!
Ich bräuchte eine solche Funktion für JAVA (Konsole).
Bisher habe ich folgendes versucht: ...
Code:
try {
        char c = (char)System.in.read();            }
     catch (IOException e)
     {}
... aber das Problem ist, dass trotz des reads eine Return-Taste erwartet wird.
Also was nun? :gruebel:

d3g 24. Mär 2004 14:51

Re: readkey unter JAVA
 
Da hast du ein Problem, das du nicht lösen können wirst, fürchte ich. Denn Java unterstützt kein ReadKey(), so wie du es willst, weil es extrem plattformabhängig ist (ich schätze, es gibt auch einige Plattformen, auf denen es gar nicht möglich ist).

Dannyboy 25. Mär 2004 09:32

Re: readkey unter JAVA
 
Das muss aber gehen und ich weiss, dass Unix das kann (ich arbeite mit Java unter Unix).
Man kann nämlich auch die eingegebenen Shellbefehle mit der "k"-Taste durchscrollen
ohne Return zu drücken.

d3g 25. Mär 2004 10:21

Re: readkey unter JAVA
 
Unix-Terminals können das (siehe ncurses), ja. Aber Unix und Win32 sind nicht die einzigen Plattformen, auf denen Java läuft. Denk mal an die ganzen Embedded Devices. Ich sage dir: So etwas gibt es im Java-Standard einfach nicht.

Dannyboy 25. Mär 2004 11:36

Re: readkey unter JAVA
 
Hey yo, ich habe nichts passendes gefunden und löse dieses Problem
nun teilbefriedigend einfach dahingehend, dass der Benutzer die
ENTER-Taste drücken muss. :|
Code:
// Wartet auf Enter-Taste, wenn counter MODULO step = 0 

private void waitKey(int step, int counter) {   
   if (counter > 0 && step > 0)
      if (counter % step == 0) {
         System.out.println("Bitte Enter-Taste drücken...");
           try {
               System.in.readln();       
           }
           catch (IOException e)
           {}
      }
}
Thanx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz