# Konsolenausgabe leeren



## DesertFox (8. Jul 2004)

Gibt es denn in Java irgenteine Möglichkeitl, ähnlcih wie bei Pascal über clrscr;, ein dos fenster wieder komplett, wie kann man sagen, "schwarz" zu machen?
Ausserdem würde ich gerne wissen, wie man eine Methode aufrufen kann wenn irgenteine taste wie 'r' oder so gedrückt wird. Ohne eingabe, nur dass z.B wenn man 'r' drückt, das Programm z.B. irgenteinen String ausgibt.
Danke schon im Vorraus für die hilfe


----------



## bygones (8. Jul 2004)

DesertFox hat gesagt.:
			
		

> Gibt es denn in Java irgenteine Möglichkeitl, ähnlcih wie bei Pascal über clrscr;, ein dos fenster wieder komplett, wie kann man sagen, "schwarz" zu machen?


direkt meines wissens nicht - wenn es einen DOS befehl gibt (ähnlich 'clear' unter Linux) - dann kannst du das über 
	
	
	
	





```
Runtime.getRuntime().exec();
```
ausführen



			
				DesertFox hat gesagt.:
			
		

> Ausserdem würde ich gerne wissen, wie man eine Methode aufrufen kann wenn irgenteine taste wie 'r' oder so gedrückt wird. Ohne eingabe, nur dass z.B wenn man 'r' drückt, das Programm z.B. irgenteinen String ausgibt.
> Danke schon im Vorraus für die hilfe


in einer GUI Application geht das ohne Probleme über sog. KeyListener


----------



## DesertFox (8. Jul 2004)

Und bei einer nicht GUI application?

//Edit: Danke schonmal!


----------



## KSG9|sebastian (8. Jul 2004)

ähm..
kopier doch mal deinen code rein..!

also zeilen von der console einlsen kannst du mit

String test = System.in.readLine();


----------



## DesertFox (8. Jul 2004)

Nee ich habe ncoh keinen Code. Ich bruache nur diese beiden sachen um das Programm zu schreiben, und deswegen hab ich mich shcon jezt informiert, um nicht irgentwann aufgeben zu müssen, weil es etwas gar nicht gibt. 
ABer warum willst du eigentlich den Code? Ich wollte ja nur wissen wie mans macht, dass etwas passsiert (also ne Methode aufgerúfen wird oder so) wenn man eine bestimmte taste drückt. DIes brauche cih für ein "nicht-GUI" programm.


----------



## Beni (8. Jul 2004)

Also bei diesem System-InputStream passiert erst was, wenn der User auf Enter drückt.
Ansonsten blockiert er einfach das Programm, bis etwas kommt. (Wenn man die Methode "read" aufruft, bleibt das Programm einfach stecken).


----------



## Grizzly (8. Jul 2004)

Soviel ich weiss, wird immer ein Zeichen ausgegeben.

Abgesehen davon kann man mit Java in der Console nicht viel sinnvolles anfangen. Ich habe in Java auch noch nie eine Consolen-Anwendung gesehen - außer vielleicht einen Server. Und der fragt normalerweise keine Tasten ab.


----------



## P3AC3MAK3R (8. Jul 2004)

deathbyaclown hat gesagt.:
			
		

> DesertFox hat gesagt.:
> 
> 
> 
> ...


Das wäre "cls".


----------



## Illuvatar (8. Jul 2004)

Nur ist das keine Anwendung, sondern ein DOS-Befehl, und funktioniert somit nicht mit Runtime#exec (jedenfalls bei mir nicht). Einen Workaround kenne ich nicht.


----------



## DesertFox (8. Jul 2004)

Danke an alle! Also das prob isch, dass ich mich bis jetzt noch überhaupt nicht mit awt und swing auseinandergesetzt habe, sondern nur consolenprogramme bis jetzt geschrieben habe. Ich kann natürlcih jetzt dies als anlass nehmen endlcih damit anzufangen, was wahrscheinlcih acuh das vernünftigste ist. ABer trotzdem danke, nun muss cih halt das programm anders gestalten aber irgentwie wird es schon gehen. Trotzdem danke!!


----------



## Pulvertoastman (9. Jul 2004)

Halt! Halt Halt!

Es gibt tatsächlich noch einige Programmierer, die Applikationen für die Konsole schreiben.

leider ist dieses, wie schon richtig gesagt wurde, abhängig vom darunterliegenden Betriebssystem.

Ansätze für die Programmierung findest du z.B. bei
http://sourceforge.net/projects/javacurses/
oder 
http://www.pitman.co.za/projects/charva/

Der letztere scheint mir davon der ausgereiftere und am weitesten gediehen Ansatz zu sein.


----------



## L-ectron-X (9. Jul 2004)

Den ganzen Bildschirm löschen? Davon habe ich mal etwas im Sun-Forum gelesen. Aber beim besten Willen, ich kann mich nicht mehr daran erinnern, wie das ging. ???:L
Ich kenne jetzt nur noch "\b" zum Löschen eines einzelnen (Vorgänger)Zeichens.
Oder man setzt eine entsprechende Anzahl Leerzeilen in die Console ein.


----------



## DesertFox (9. Jul 2004)

Thx nommal, also des mit dem Leeren des ausgabefensters ist ja dann damit gelöst, aber das wahrscheinlcih wichtigere ist, so etwas wie die keylistener für nicht gui progs zu beschaffen oder den befehl zu kennen zu lernen. Ohne das kann cih das programm, was ich schreiben will, fast keine chance zu entstehen! Oder kann man die Key Listener auch für nich GUI Progs verwenden?


----------



## Grizzly (9. Jul 2004)

DesertFox hat gesagt.:
			
		

> [...]Oder kann man die Key Listener auch für nich GUI Progs verwenden?


Eigentlich nicht. Zumindest nicht das ich wüsste. Wobei ich immer noch nicht ganz verstehe für was Du das in einer Konsolenanwendung überhaupt brauchst.


----------



## DesertFox (9. Jul 2004)

´z.b für kleine spiele. bestes beispiel: snake! das mach cih zwar nicht aber in die richtung gehts. Daher, wenn man eine taste macht, dann macht das prog etwas (bei snake in eine richtung gehen), und man muss die konsole immer bereinugen, da man ja nicht immer die seinzelnen snakebilder untereinander stehen haben will

//Edit: Gibt es vllt dann einen ersatz für key listener für nicht gui progs? Was den gleichen zweck erfüllt?


----------



## L-ectron-X (9. Jul 2004)

Also für großflächige Animationen ist die Java-Console überhaupt nicht geeignet. Sie dient zu einfachen Textausgabe, nicht mehr und nicht weniger. Vielleicht solltest Du doch besser Dein Programm in einem Fenster unterbringen... :wink:


----------



## DesertFox (9. Jul 2004)

Ja glaub auch, aber danke für eure Hilfe!


----------

