GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Limpar tela em modo texto!


#1

Ola pessoal, vcs sabem agum metodo para limpar a tela em mode texto?? tipo pno pascal é usado clrscr; ou e possivel limpar a tela???? Me ajudem por favor! Desde já grato!


#2

Não tem jeito de fazer isso com Java.
Você pode, por exemplo, imprimir 24 (ou mais) "\n" para pular linhas.


#3

Cara Jackie,

Existe pelo menos uns 2 jeitos de se fazer isto.

Para Windows:

Use o ANSI.SYS e gere sequências ESCAPE.

Quer saber mais: De uma olhada neste post e dê mais umas Googleadas...
http://groups.google.com.br/groups?q=ansi+escape+clear+screen+java&hl=pt-BR&lr=&selm=67dj7l%24noj%241%40due.unit.no&rnum=2

O outro método esqueci agora, e funciona no Linux.

Achei mais este link também.
http://groups.google.com.br/groups?q=%22ansi.sys%22+%22clear+the+screen%22+java&hl=pt-BR&lr=&selm=79S8IBpHzpB%40ui-20008.netsurf.de&rnum=4


#4

O problema é que o Java não foi feito para criar aplicações em modos consoles, por isso os famosos System.out.println(); são usados para fins de debug, deploy, trace e outras coisas.


#5

Valeu ai pelas dicas mas quando mando ele imprimir tantas vezes ele sempre aparece em baixo da tela como eu faço para ele aparecer no topo?? eu posso colocar quantas vezes quiser para pular linha mas sempre continua embaixo, eu estava fazendo assim??

for(int i=0; i< 24; i++)
System.out.println("\n");

esta certo??

Desde já agradeço!


#6

Se eu intendi vc queria algo parecido com o clrscr do pascal para poder limpar a tela logo apos ter executado uma vez, ou estou errado?? Pq no pascal quando vc manda rodar a aplicação uma vez e depois vai executar denovo se nao tiver clrscr em algum lugar do codigo vai ficar as informações de quando voce rodou a primeira vez. No java isso nao acontesse porque quando vc manda executar a segunda vez vai começar tudo limpo, logo nao precisa do clrscr ..... isso se deve por causa do garbade colection que se encarega de limpar a memoria logo apos uma execução.........

Me corriga se eu estiver errado :smile:


#7

Talvez isto sirva para você (perdoem-me pela seqüência de escape ANSI :roll: ):

System.out.print( "[code]System.out.print( "\033[H\033[2J" );[/code]33[H[code]System.out.print( "\033[H\033[2J" );[/code]33[2J" );

Ou ainda, uma forma um pouco mais abreviada:

System.out.print( "33H332J" );

Só por curiosidade: acho que pouca gente sabe, mas o comando clear, muto popular no Linux, nada mais faz do que imprimir na tela a seqüência de escape ANSI acima. (Duvida? Execute clear >> clear.txt e abra o arquivo clear.txt em um editor de textos.)


#8

Ola, valeu pelas dicas ai , mas ate agora não deu certo nem uma dessas com ansi, eu preciso configurar alguma coisa??, e apenas usar essas sequencias??

Caro tRuNkSnEt, e isto mesmo eu gostaria de um metodo como o clrscr do pascal, vc comentou q no java nao precisa do clrscr para limpar a tela q ja aparece limpa, oq acontece e o seguinte eu fiz um programa com um while q enquanto ele diser q quer continuar vai rodando ate o usuario falar q nao quer mais, dai quando ele vai rodar pela segunda vez o programa continua em seguida, entendeu?? mas valeu pela ajuda!


#9

Isso eh essencial para voce? Eh para algum projeto "real", ou voce esta somente brincando / aprendendo Java? Aplicacoes em modo-texto sao extremamente raras em Java, e nao ha classes utilitarias para isso - ou seja, voce nao vai encontrar, oficialmente, pacotes para desenhar telas usando ascii art.

Rafael


#10

Valeu Rafael, e q eu tava fazendo um trabalho e achei interessante pesquisa a respeito mas, como vc falo q nao tem como fazer isto, vo muda o meu trabalho! Obrigado a todos por terem me ajudado! :lol:


#11

Sobre as seqüências de escape ANSI, acho que vale dizer que o que determina se elas vão funcionar NÂO é a sua aplicação em si, mas SIM o terminal de linha de comando de onde você invoca a sua aplicação (por exemplo, na maioria dos terminais usados no Linux, a seqüência que eu passei deve funcionar, mas não garanto o mesmo para um terminal MS-DOS ou MacOS).

Talvez seja por isso que muita gente desaconselha o uso de seqüêncas ANSI em aplicações Java, pois isto quebra a sua portabilidade.


#12

Usar o console, por si so, ja quebra a portabilidade - lembram do MacOS da pre-historia? Entao, nao tinha console :?


#13

Como eu disse no meu post anterior...se estiver usando o Windows, pressupôe-se que vc vai dar uma olhada em seu sistema para ver se no CONFIG.SYS o ANSI.SYS está sendo carregado.

Seu comentário dá a entender que nem isto viu.... :cry:


#14

A propósito, alguém aí conhece algum projeto de emulador de terminal (Linux, por exemplo) feito em Java?


#15

Tá falando disso: http://www.guj.com.br/posts/list/22579.java ???


#16

Acho que sim (mais precisamente, algo como o projeto Enigma que você indicou). Obrigado!


#17

Pra que vc precisa limpar a tela? Por q vc acha q isso é necessário?


#18