Limpiar consola

Iniciado por Thiamatt, 22 Abril 2018, 17:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Thiamatt

Hola a todos!

Me mandaron a realizar un trabajo con Java, en modalidad de consola. Y, el programa muestra demasiados datos por pantalla, generando ciertas confusiones al Usuario. Me gustaría saber si hay algún método para limpiar la consola.

Muchos me recomendaron generar líneas en blanco, pero no me convence demasiado. ¿Debería usar llamadas al SO? ¿Hay alguna librería?


rub'n

#1
Cita de: Thiamatt en 22 Abril 2018, 17:21 PM
Hola a todos!

Me mandaron a realizar un trabajo con Java, en modalidad de consola. Y, el programa muestra demasiados datos por pantalla, generando ciertas confusiones al Usuario. Me gustaría saber si hay algún método para limpiar la consola.

Muchos me recomendaron generar líneas en blanco, pero no me convence demasiado. ¿Debería usar llamadas al SO? ¿Hay alguna librería?




Quizás te pueda servir, la magia esta en la linea 8 usamos una secuencia de escape pero en ASCII la H, implica mover a la parte de arriba de la pantalla o cmd y 2J, implica limpiar la pantalla entera.

Testeao en guidow 7, linux no tengo ahorita, ni siquiera estoy en mi pc  >:D



Código (java) [Seleccionar]
package com.foro.prueba;

import javax.swing.*;
import java.util.stream.IntStream;

public class CleanConsole {

   private static final String COMANDO_ASCII = "\033[H\033[2J";

   public CleanConsole() {
       IntStream.range(1,101)
               .forEach( p -> System.out.println("blablablal"));

       final int option = JOptionPane.showConfirmDialog(null,"limpiar consola?","Información",0);
       if(option != 1) {
           quitar$hit();
       }else {
           new Thread(() -> {
               try {
                   System.out.println("Saliendo...");
                   Thread.sleep(3000);
               }catch (InterruptedException ex) {
               }
           }).start();
       }
   }

   public static void quitar$hit() {
       System.out.print(COMANDO_ASCII);
       System.out.flush();
   }

   public static void main(String ...blablal) throws ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
       UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
       new CleanConsole();
   }
}


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

Thiamatt

Muchas gracias por responder! Pero no, no me funcionó...

rub'n

#3
Cita de: Thiamatt en 22 Abril 2018, 23:32 PM
Muchas gracias por responder! Pero no, no me funcionó...

Da mas detalle, error algún capture de pantalla al menos. xq en esta maquina funciona  :xD


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen