[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

læse et enkelt tastetryk fra tasteturet i java



Hej!

Jeg er ved at skrive et lille tekstbaseret program i java, som skal hjælpe med at slå op i en database over kemikalier. Da kemikalier har frygtelig lange navne vil jeg gerne lade programmet gætte matchende kemikalier, mens brugeren indtaster et navn. Jeg har altså brug for en metode, der kan læse et enkelt bogstav fra tastaturet, så jeg efterfølgende kan slå op i datasen og vise de mulige fund - lidt på samme måde som tab-completion i bash, bare on-the-fly.

Desværre opererer java kun med streams. Selv om der er metoder i Reader-interfacet til at læs enkelte bogstaver, får jeg først lov til at hente enkelte tegn, når brugeren har trykket på return. Jeg har på nettet set, at der i til C findes en metode getch() i ncurses, som jeg nu bruger gennem Java Native Interface. Det virker også fint, men getch() kan først bruges, når jeg har kaldt initscr() og dermed får et helt curses-environment op at køre. Det er egentlig ikke det jeg er interesseret i, jeg vil gerne beholde konsollens skærmbillede, blandt andet fordi jeg så kan pipe outputtet.

En anden mulighed jeg har set på nettet er at pille ved terminalen, så getchar() opfører sig som getch() og så resette konfigurationen, når programmet afsluttes. Den er jeg lidt betænkelig ved, for hvad nu hvis brugeren afslutter programmet med ctrl-c eller endda kill inden da? Ødelægger det så ikke konsollens opsætning?

Så: Er der en mere elegant måde at læse et enkelt tegn fra tastaturet i java?

På forhånd tak
Siemen


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:44 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *