Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Bildschirm löschen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
03.08.2004, 16:56 Uhr
Lumina



Hi,

also, beschäftige mich jetzt auch mit Java, seit 2 Tagen und feile gerade an der Optik meiner Programmausgaben.

Weiß nicht, wie bzw. ob ich den Bildschirm der Konsole (cmd-Fenster) löschen kann.

Geht das, wenn ja wie?!

Mfg Lumina
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.08.2004, 17:17 Uhr
typecast
aka loddab
(Operator)


Java selber bietet keine Moeglichkeit den Bildschirm der Konsole zu loeschen. Da hilft nur das ausgeben von Leerzeilen bis nichts mehr da ist, oder der Einsatz von Escape-Sequenzen.

Fuer ein VT100 Terminal waere das z.B.:

Code:
System.out.println( "\u001b[H\u001b[2J" );



Vielleicht helfen dir die ANSI Escape Sequenzen bei der Windowskonsole (nicht vergessen ansi.sys laden).
Die findest du irgendwo in der C++ FAQ.

Ausprobiert habe ich es allerdins noch nicht.


Bearbeitung von typecast:

irgendwo


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 03.08.2004 um 17:20 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.08.2004, 20:33 Uhr
Lumina



dann wäre Java ja dumm. Das kann ja sogar Turbo Pascal schon!!

In der API steht irgendwas von Process() und Runtime, also wo man die DOS-Befehle auf Java abbildet...

Kannst du damit was anfangen?!
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.08.2004, 20:53 Uhr
typecast
aka loddab
(Operator)


Turbo Pascal = Compiler der Programme fuer ein OS erstellt

Java = Compiler der Bytecode erstellt der auf ALLEN Sytemen ohne neukompileren laeuft.

Da ist ein Unterschied (btw: C/C++ kennt auch nichts, was den Bildschirm loescht. Da geht das auch ueber Escape-Seqenzen oder Leerzeilen ausgeben)



Was du machen koenntest (obwohl es untereste Schublade ist und eigentlich weggeschlossen werden sollte) ist:

Runtime.exec("cls");

Wenn du das aber in Bytecode uebersetzt, diesen dann auf einer Linuxmaschine ausfuehrst und dann ueber die Portabilitaet von Java herziehst, dann wuerdest du von eingefleichsten Java-Fans wahrscheinlich gesteinigt
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.08.2004, 08:19 Uhr
Lumina



DAS GEHT SO NICHT in meinem JavaProgramm! Gibt einen Fehler

Code:

D:\Java_Uebungen\Uebung18.java:45: non-static method exec(java.lang.String) cannot be referenced from a static context
        Runtime.exec("cls");
                                   ^
1 error

Prozess beendet mit Exit-Code 1



und mit API-Hilfe gehts auch nicht:

Code:

        Runtime runtime = Runtime.getRuntime();
        try {
            runtime.exec("cls");
        } catch (Exception ex) {

        }




Das lässt sich zwar kompilieren und ausführen, aber es macht rein gar keinen Unterschied zu vorher...

und deine Zeile vorher

Code:

System.out.println( "\u001b[H\u001b[2J" );


ergibt bei mir die Ausgabe:
<-[H<-[2J
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************

Dieser Post wurde am 04.08.2004 um 08:24 Uhr von Lumina editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.08.2004, 09:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Wenn ich mal eine kleine Prognose wagen darf (ich habe allerdings noch versucht, eine reine Konsolenanwendung mit Java zu schreiben):
Ich befürchte, daß es einfacher ist, ein Programm mit Fenstern zuschreiben, als eine Konsoleanwendung mit Formatierung, Bilschirmlöschen usw. Und Fensterchen in Java sind nun mal wirklich total easy...

Daß das mit dem runtime.exec nicht tut, sollte daran liegen, daß "cls" IMHO unter Windows kein eigenständiges Programm ist, sondern ein Buildin von cmd.exe. Du kannst es ja spasseshalber mit "cmd /c cls" probieren, ggf. cmd vollqualifizieren.

Generell solltest Du Dir aber solchen Kram ganz schnell abgewöhnen in Java. Zumindest mir tut der Thread schon vom hinsehen her weh.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.08.2004, 15:02 Uhr
Lumina



Hi virtual,

lern seit 2 Tagen erst Java... die Blätter, die ich da bekommen hab, fangen eben mit der Konsolenanwendung an und von Fenstern hab ich noch gar nix gehört. Bin ja momentan noch auf das TextPad angewiesen, hab keinen JBuilder oder so. (noch nicht)

Also, habt Geduld mit mir...
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.08.2004, 17:43 Uhr
Pablo
Supertux
(Operator)



Zitat von Lumina:

und deine Zeile vorher

Code:

System.out.println( "\u001b[H\u001b[2J" );


ergibt bei mir die Ausgabe:
<-[H<-[2J


typecast hat dich auch gewarnt. Windows XP hat in der Regel ansi.sys nicht mehr eingebunden und ANSI Escape Sequenzen unter Windows laufen nur mit ansi.sys. Ich glaube, das kann man unter XP gar nicht mehr einstellen, weil die config.sys nicht mal vorhanden ist. Und wenn du es schaffst, dann werden die meisten windows Rechner dasselbe bekommen, deshalb würde ich dir von der Escape Sequenz abraten.

Ich glaube, die einzige Möglichkeit wäre da 80 leere Zeile ausgeben (oder mehr). Aber ich sehe auch nicht den Sinn wozu man den Bildschirm löschen muss.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.08.2004, 19:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, in google hab ich das gefunden:

www.ic.sunysb.edu/Stu/sfukase/CSE114Utilities.html

vielleicht hilft das
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.08.2004, 22:03 Uhr
Lumina



tja, ist eigentlich genau das, was ich wollte, nur leider nur für Unix...

Trotzdem danke!
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: