crusy.net

  • home.
  • photos.
  • about.

 

29
Jan

Java: Keylistener auf Konsolenebene

By crusy|Coding, Java|2 Comments

java

Man kann GUIs bauen mit Java – wenn man will. AWT und Swing existieren. Eigentlich ist Java aber konsolenbasiert. Um so erstaunlicher, dass es von Haus aus (immer noch) keine Möglichkeit gibt, einzelne Zeichen einzulesen, ohne nach Eingabe auf Return/Enter warten zu müssen. Das wäre aber nötig, um zB die (komfortable) Steuerung einer Konsolenanwendung mit der Tastatur zu ermöglichen. Mit dem Package JLine (speziell ConsoleReader.readCharacter) kann man das – hier die “Hello World“-Version:

package input;

import jline.ConsoleReader;

public class Keylistener
{
private static final char NOOP    = ’0′;
private static final char QUIT    = ‘q’;
private static final char UP    = ‘w’;
private static final char DOWN    = ‘s’;
private static final char LEFT    = ‘a’;
private static final char RIGHT    = ‘d’;

private static char[] allowed = { UP, DOWN, LEFT, RIGHT, QUIT };

public static void main( String[] args )
{
char input = NOOP;

try
{
ConsoleReader console = new ConsoleReader();

while( input!=QUIT ){
input = (char)console.readCharacter( allowed );
console.clearScreen();

switch( input ){
case UP:
System.out.println( “up” );
break;
case LEFT:
System.out.println( “left” );
break;
case DOWN:
System.out.println( “down” );
break;
case RIGHT:
System.out.println( “right” );
break;
}
}
}
catch( Exception e ){}
}
}

HTH – und sorry für die nicht vorhandene Formatierung :-)

Tagged as: Console, Java, JLine, Keyevent, Konsole
Add your comment →

2 Comments

  1. Verbesserungsvorschläge:

    - Akzente (`´) in Apostrophe (‘) und Anführungszeichen (“)
    - Zeile “package input;” – Wofür braucht man die?

    By: DarkAngel
    April 30, 2011 at 12:31
  2. Jaa, das ist ja kein Quellcode in dem Sinne, sondern nur bessere Illustration :-) WordPress ersetzt Anführungszeichen usw.
    Das Package kann bei Dir natürlich anders heißen

    By: crusy Author
    April 30, 2011 at 14:36

Leave your comment below! Cancel Reply

View More Posts:
  • ←
  • →

Suche:

Schubladen:

  • Apropos (62)
  • Computer (222)
    • Arduino (4)
    • Coding (166)
      • CSS (5)
      • Flash (88)
      • Java (4)
      • Javascript (17)
      • PHP (6)
    • Firefox (19)
    • OS X (19)
  • Lustig (90)
  • Musik (52)
  • Photo (30)
    • Photoshop (16)
  • Video (58)
  • Web (95)
  • Werbung (29)

@crusy:

Lord Helmchen! (Der war bestimmt schon, oder?) #cl
19 hours ago from Twitter for Windows Phone
Fußball gucken ist ein bisschen wie Al Bundy gucken: Der Sprecher ist zwar unlustig, aber das Publikum klatscht trotzdem.
20 hours ago from Twitter for Windows Phone
Wenn man heiratet, ist man dann ent-ledigt?
1 day ago from web
Sach ich doch
3 days ago from Twitter for Windows Phone
SHER
3 days ago from Twitter for Windows Phone

Kommentare:

  • Christian on WSDL2Java: Axis2 in Eclipse Indigo
  • crusy on Deutschlandweite Verteilung Deines Namens
  • Jotteh on Deutschlandweite Verteilung Deines Namens
  • Fogwulf on Abgerundete Ecken
  • crusy on Van Gogh meets Monkey Island (und mehr!)

Tags:

Actionscript Actionscript 3 Addon Adobe AIR Ant Apple AS AS3 Coding Comment Cover CSS Design Eclipse Facebook FDT Film Firefox Flash Flex Google Internet iOS iPad iPhone Java Javascript Kommentar Mac music Musik Obama OSX OS X Photoshop PHP Plugin Star Wars Video Web Werbung Wordpress XML Youtube

Projekte

  • Bent Larsen
    DAS Film Noir Point-and-Click-Adventure
  • crusy goes sf
    Photoblog aus San Francisco
  • Insignia
    Aufbau. Handel. Herrschaft.
  • nerdeln.de
    Nörgeln für Nerds
  • Photos
    Mein Photoblog
  • Tourtagebuch
    Von sechs Menschen, einer Stadt und keiner Wohnung

Powered by the inLine Minimal WordPress Theme