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 (55)
  • Computer (211)
    • Arduino (4)
    • Coding (157)
      • CSS (5)
      • Flash (87)
      • Java (2)
      • Javascript (17)
      • PHP (5)
    • Firefox (18)
    • OS X (18)
  • Lustig (86)
  • Musik (50)
  • Photo (30)
    • Photoshop (16)
  • Video (57)
  • Web (94)
  • Werbung (28)

@crusy:

Die HARIBO Goldbären werden dieses Jahr 90. Now you know.
2 hours ago from Twitter for Windows Phone
RT @DylanDogger: Paradox: Menschen, die über sich lachen können, nehme ich ernst.
2 hours ago from web
RT @Afelia: RT @fagri Dann gehen wir morgen halt "vorerst" gegen ACTA demonstrieren. #stopacta
2 hours ago from TweetDeck
Die Sonne scheint mir in's Gesicht. Das soll sie nicht.
2 days ago from web
optisch mittig my ass.
2 days ago from web

Kommentare:

  • crusy on Van Gogh meets Monkey Island (und mehr!)
  • Stefan Heller on Van Gogh meets Monkey Island (und mehr!)
  • crusy on Arduino mit Eclipse als IDE
  • michael on Arduino mit Eclipse als IDE
  • crusy on AIR Native Extension für Arduino

Tags:

Actionscript Actionscript 3 Addon Adobe AIR Apple AS AS3 Coding Comment Cover CSS Eclipse Facebook FDT Fehlermeldung Film Firefox Flash Flex Font Google Internet iOS iPad iPhone Javascript Kommentar Kunst Mac music Musik Obama OS X OSX 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