Comando que limpe automaticamente o console para evitar má estética

7 respostas
Davi_Aleixo

gostaria de saber um um comando que limpasse o console no java para utilizar na minha calculadora, ela deve apresentar o resultado

print.out.println(sua resposta é+i);

print.out.println(deseja fechar? pressione z);

print.out.println(deseja recomeçar? pressione y);

gostaria que tanto o comando z e o comando y limpassem o console

7 Respostas

FearX

Vamos lá.

Primeiramente, print.out.println é algo novo pra mim. Você quis dizer System.out.println()?

Segundo lugar, isso é muito dependente. De IDE, de SO, de console pra console. Logo, o melhor mesmo seria você procurar bibliotecas gráficas como o Swing e o FX. Mas como você deve estar começando agora, vou te ensinar um macete para “limpar” o console.

for (int i=0; i < 20; i++){`
System.out.println();
}

Quando você ler Z ou Y (pelo Scanner), você chama esse for. Ele vai pular vinte linhas do console, jogando todas as coisas anteriores para cima e assim “apagando” as coisas. Você também pode ler sobre o \r, mas como eu disse, isso muda de ambiente para ambiente.

Se quiser alterar a quantidade de linhas puladas, basta mexer no segundo statement do for. Ele pulará linhas enquanto i for menor que X.

[]'s

staroski

Para limpar a tela são necessários recursos específicos do sistema operacional, Java não tem uma implementação pra isso.

O que você pode fazer é uma gambiarra específica pra cada sistema operacional.
No Windows por exemplo você pode chamar o comando CLS do DOS para limpar toda a tela.
Isso só vai funcionar quando executar o programa em linha de comando, no console da IDE não vai funcionar

Exemplo de um método limparTela();

private void limparTela() {
    String nomeSistema = System.getProperty("os.name").toLowerCase();
    if (nomeSistema.contains("windows")) {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", "cls");
            processBuilder.inheritIO();
            Process process = processBuilder.start();
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
rodriguesabner

Só complementando, você pode usar a classe Robot também, assim que o usuário apertar Z, o robot tecla CTRL+L (se vc estiver utilizando NetBeans, esse comando limpa o console).

Davi_Aleixo

Realmente o sono e a pressa são inimigos mortais, foi apenas um erro de digitação. mas obrigado pela resposta.

Davi_Aleixo

entendi, então eu teria que fazer um if else para cada sistema operacional correto?

Davi_Aleixo

Eu tinha chego a este caso, porém, eu uso o Eclipse, que desconheço uma funcionalidade parecida à do NetBeans.

rodriguesabner

Ctrl + A e depois Backspace não funciona?

Criado 1 de abril de 2019
Ultima resposta 1 de abr. de 2019
Respostas 7
Participantes 4