Toon posts:

[Java] Legen Scherm

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan ik mijn commandoscherm laten legen, ik heb nl een forloopje waar iets instaat dat elke keer op dezelfde plaats in je venster moet komen, maar nu heb ik dat met enters gedaan, maar das dus niet zo handig, want als je je commandoshcerm nu vergroot, werkt dat ook niet meer :)
Iemand een oplossing?

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 27-05 10:14

Eelke Spaak

- Vlad -

Dat kan niet met de standard libraries van Java, aangezien dat soort dingen sterk afhankelijk zijn van het onderliggende OS. Sterker nog, in de language specs staat niet eens dat System.out naar de console moet schrijven :) .

Waarom gebruik je niet gewoon een GUI met Swing of zo?

TheStreme - Share anything with anyone


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 27-05 22:34
Wat voor een commando scherm? Gewoon een textarea? Dan kun je gewoon setText("") doen :)

Verwijderd

removeAll(); dacht ik.

  • jopie1983
  • Registratie: November 2003
  • Laatst online: 25-02-2024
Een manier waarop je dit zou kunnen doen is bijvoorbeeld door het systeemcommando hiervoor aan te roepen. Dit doe je door Runtime.getRuntime().exec("cls") bijvoorbeeld onder windows. Je verliest hiermee wel het platformonhafhankelijke van Java, maar mijn ervaring hiermee is dat je dit concept in java toch al niet echt werkt. :)

Verwijderd

en clear onder linux, en dan kun je nog een system variable opvragen die je het OS vermeld. clear zal ook wel onder OSX werken...

os.name Operating system name
os.arch Operating system architecture
os.version Operating system version

opvragen via java.lang.System.getenv()

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Vladimir G. schreef op 14 december 2003 @ 19:10:
Waarom gebruik je niet gewoon een GUI met Swing of zo?
ehm, wellicht heb je niet altijd een beeldscherm oid ;)
zo heb ik voor mijn applicatie (irc botje) alleen een console ter beschikking aangezien de server waar deze op draait geen xserver oid heeft ;)

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 27-05 21:44

Robtimus

me Robtimus no like you

Verwijderd schreef op 16 december 2003 @ 20:35:
opvragen via java.lang.System.getenv()
1) getenv() bestaat niet, wel getenv(String name))
2) Liever niet!! Die getenv is deprecated.

The way to go is java.lang.System.getProperties(), java.lang.System.getProperty(String name) en java.lang.System.getProperty(String name, String default)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Als ik je probleem goed begrijp probeer je in een console schempje iets constant op dezelfde plaats weg te schrijven (overschijven).
Hiervoor heb je geen clear screen nodig. Het kan je simpel met een print in combinatie van een \r (carage return). Hiermee spring je terug naar het begin van de huidige regel.

Voorbeeldje uit mijn hoofd:
for (int i=0;i<MAX;i++)
{
//eventueel eerst legen van de regel
//System.out.print("\r        ");
//i wordt getoond aan het begin van steeds dezelfde regel
System.out.print("\r"+i);
}

[ Voor 25% gewijzigd door Verwijderd op 17-12-2003 14:37 ]


  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 24-05 20:08
Mjah, maar ik zou niet "\r" + i printen, tenzij je regelnummers zou willen hebben op elke regel oid.

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 27-05 10:14

Eelke Spaak

- Vlad -

Verwijderd schreef op 17 december 2003 @ 14:31:
Als ik je probleem goed begrijp probeer je in een console schempje iets constant op dezelfde plaats weg te schrijven (overschijven).
Hiervoor heb je geen clear screen nodig. Het kan je simpel met een print in combinatie van een \r (carage return). Hiermee spring je terug naar het begin van de huidige regel.

Voorbeeldje uit mijn hoofd:
for (int i=0;i<MAX;i++)
{
//eventueel eerst legen van de regel
//System.out.print("\r        ");
//i wordt getoond aan het begin van steeds dezelfde regel
System.out.print("\r"+i);
}
Dat is dus zoals hij het nu heeft gedaan :) . Het probleem is juist dat je die MAX uit jouw voorbeeld niet zo makkelijk kan bepalen in Java.

TheStreme - Share anything with anyone

Pagina: 1