# texbasiertes Menü (TUI) erstellen



## DarkJedi (29. Mai 2004)

Hallo erstmal!

Ich würde gerne in Java ein textbasiertes Menu (Textual User Interface) erstellen, weiß aber irgendwie nicht, wie ich das in Java angehen soll. 

In C/C++ ist mir das schon gelungen, aber leider nicht in Java 
Vielleicht kann mir ja einer von Euch ja ein paar Tipps geben.


Es wäre super, wenn jemand einen kleinen Beispielcode für ein einfaches Textmenu hätte


MfG

DarkJedi


----------



## Snape (29. Mai 2004)

> _Original geschrieben von DarkJedi _
> *Hallo erstmal!
> 
> Ich würde gerne in Java ein textbasiertes Menu (Textual User Interface) erstellen, weiß aber irgendwie nicht, wie ich das in Java angehen soll.
> ...



Ehrlich gesagt kann ich mir darunter nichts vorstellen. Kannst Du das mal näher beschreiben oder ein Screenshot o.ä. zeigen?


----------



## JohannesR (29. Mai 2004)

Ich vermute, dass du eine Shell-ähnliche umgebung meinst, in der sicher der User bewegen kann? So in der Art wie in einem Textadventure?


```
room> goto door
room (near door)> open door
room (open door)>
```
So in der Art, auf jedenfall?


----------



## Dario Linsky (29. Mai 2004)

Ich denke eher, dass er sowas meint, wie lynx, emacs, vi, mc, und so weiter.


----------



## DarkJedi (29. Mai 2004)

Hallo!

oh... da hab ich mich wohl was missverständlich ausgdrückt, Johannes hat das schon richtig erklärt, ich würde gerne eine Menu in einer Shell-Umgebung schreiben . Aber mir fehlt irgendwie der Ansatz dafür, das in Java umzusetzen.


----------



## Thomas Darimont (29. Mai 2004)

Hallo!

Versuchs mal hiermit:


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 * Created on 29.05.2004
 */

/**
 * @author Administrator
 */
public class TextUIExample {

	private BufferedReader br;
	private String exitCode = "EXIT";
	private String helpCode = "HELP";
	private boolean doExit = false;
	
	public TextUIExample() {
		//Zum einlesen von der Standardeingabe (Tastatur)
		br = new BufferedReader(new InputStreamReader(System.in));
	}

	public static void main(String[] args) {
		new TextUIExample().doIt();
	}

	private void printMenuStructure() {
		System.out.println("1) Hauptmenü");
		System.out.println("2) Menü2");
		System.out.println("3) Menü3");
		System.out.println("4) Menü4");
		
		
		
		System.out.println("HELP zeigt Menüstruktur an");
		System.out.println("EXIT beendet das Programm");
		System.out.print("Eingabe:>");
	}

	/**
	 * 
	 */
	private void doIt() {
		String line;
		printMenuStructure();
		try {
			while ( !doExit && (line = br.readLine()) != null) {
				processInput(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println("Exit!");

	}

	/**
	 * @param line
	 */
	private void processInput(String line) {
		if (line.indexOf(exitCode) >= 0) {
			doExit = true;
		}
		if(line.indexOf(helpCode) >= 0){
			printMenuStructure();
		}
		
		//Weitere Verarbeitung ...
	}
}
```

Gruß Tom


----------



## Christian Fein (30. Mai 2004)

Diese Geschichte kannst du mit ncurses machen, die auch eine java anbindung  bietet.
Gibt auch andere libs:
http://www.programming-x.com/programming/ncurses.html


----------



## DarkJedi (30. Mai 2004)

Super! Ich danke Euch allen, damit komme ich auf jeden Fall weiter


----------

