Hola a todos tengo este código. Quiero retrasar mi programa, por un par de segundos y mostrará «buscando…»

He aquí lo que tengo. Esto compila pero no demora nada

 if (i==1){

        try {
            Thread.sleep(1);
        } catch (InterruptedException ie)
        {
            System.out.println("Scanning...");
        }

    }

gracias de antemano
He int i = 1 antes de que obviamente

  • Esto es, en un mouseEvent btw
  • Que es de 1 milisegundo. Por favor, lea las api/manuales cuando usted tiene preguntas como estas.
  • Wow yo soy tonto. Gracias 🙂
  • Espere pero no dice la exploración mientras que se retrasa (lo siento, soy un estudiante de secundaria)
  • Eso es porque usted está imprimiendo después de llamar a dormir.
  • Sí, lo tengo. Lo siento, no soy estúpido. Gracias a todos.
  • Sería posible que se muestre «Análisis…» retardo de 1 segundo, la pantalla de «análisis…» de nuevo? en el mismo try catch
  • usted puede incluso tener cientos de veces. sólo tiene que repetir el System.out.println("Scanning..."); Thread.sleep(1000); y cambiar la impresión

InformationsquelleAutor user2918193 | 2014-04-25

11 Comentarios

  1. 9

    Si quieres pausar, a continuación, utilizar java.util.concurrent.TimeUnit:

    TimeUnit.SECONDS.sleep(1);

    A dormir por un segundo o por 10 minutos

    TimeUnit.MINUTES.sleep(10);

    O Hilo Sueño

    try        
    {
        Thread.sleep(1000);
    } 
    catch(InterruptedException ex) 
    {
        Thread.currentThread().interrupt();
    }

    véase también el la documentación oficial

    TimeUnit.SECONDS.sleep() se llame Thread.sleep. La única diferencia es la facilidad de lectura y el uso de TimeUnit es probablemente más fácil de entender para los que no obvia las duraciones.

    pero si quieres resolver tu problema

            int timeToWait = 10; //second
            System.out.print("Scanning")
            try {
                for (int i=0; i<timeToWait ; i++) {
                    Thread.sleep(1000);
                    System.out.print(".")
                }
            } catch (InterruptedException ie)
            {
                Thread.currentThread().interrupt();
            }
  2. 4

    Thread.sleep() toma en el número de milisegundos a dormir, no los segundos.

    Dormir por una milésima de segundo no es notable. Trate de Thread.sleep(1000) a dormir durante un segundo.

    • Gracias a todos, yo soy tan tonto… 😛
  3. 2

    Tiene System.out.println("Scanning...") en un bloque catch.
    ¿Quieres poner eso en el intento?

  4. 2

    Esto es, en un mouseEvent btw

    Si es que esto es un Swing GUI, a continuación, deshacerse de todas las llamadas a Thread.sleep(...) ya que al hacerlo puede poner toda la interfaz gráfica de usuario para dormir haciéndolo inútil. En lugar de utilizar un Temporizador de golpe para producir retrasos en la interfaz de usuario, mientras que dejar que aún actualización de sus gráficos.

    Usted también querrá evitar System.out.println(...) llamadas, excepto cuando la depuración, y en lugar de mostrar las notificaciones para el usuario en la interfaz gráfica de usuario, quizás en un estado de JLabel o como un mensaje de diálogo.

  5. 2

    Java:

    Para el cálculo de las veces usamos este método:

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    
        public static String getCurrentTime() {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        return sdf.format(cal.getTime());
    }

    Segundo:

    import java.util.concurrent.TimeUnit;
    
    System.out.println("Start delay of 10 seconds, Time is: " + getCurrentTime());
    TimeUnit.SECONDS.sleep(10);
    System.out.println("And delay of 10 seconds, Time is: " + getCurrentTime());

    De salida:

    Retardo de arranque de 10 segundos, el Tiempo es: 14:19:08

    Y retraso de 10 segundos, el Tiempo es: 14:19:18

    Minutos:

    import java.util.concurrent.TimeUnit;
    
    System.out.println("Start delay of 1 Minute, Time is: " + getCurrentTime());
    TimeUnit.MINUTES.sleep(1);
    System.out.println("And delay of 1 Minute, Time is: " + getCurrentTime());

    De salida:

    Retardo de inicio de 1 Minuto, Hora: 14:21:20

    Y retraso de 1 Minuto, Hora: 14:22:20

    Milisegundos:

    import java.util.concurrent.TimeUnit;
    
    System.out.println("Start delay of 2000 milliseconds, Time is: " +getCurrentTime());
    TimeUnit.MILLISECONDS.sleep(2000);
    System.out.println("And delay of 2000 milliseconds, Time is: " + getCurrentTime());

    De salida:

    Retardo de inicio de 2000 milisegundos, el Tiempo es: 14:23:44

    Y retraso de 2000 milisegundos, el Tiempo es: 14:23:46

    O:

    Thread.sleep(1000); //milliseconds
  6. 1

    Como por java documentación definición de Hilo.el sueño es :

    Thread.sleep(t);
    where t => time in millisecons to sleep

    Si quieres dormir por 1 segundo que debes tener :

    Thread.sleep(1000);
  7. 1

    Un par de problemas, no retrasar por mucho (.sleep es de milisegundos, no segundos), y que está intentando imprimir en su catch declaración. El código debe ser más como:

    if (i==1) {
        try {
            System.out.println("Scanning...");
            Thread.sleep(1000); //1 second
        } catch (InterruptedException ex) {
            //handle error
        }
    }
  8. 0

    Que usted necesita para utilizar el Thread.sleep() método.

    Este se utiliza para detener la ejecución del subproceso actual de tiempo especificado en milisegundos. El valor del argumento para milisegundos no pueden ser negativos, cosa que arroja IllegalArgumentException.

    FYI (Resumen tomado de aquí)

    Thread de Java Sueño puntos importantes

    • Siempre pausa el subproceso actual de ejecución.
    • Hilo del sueño no perder todos los monitores o los bloqueos del subproceso actual ha
      adquirido.
    • Cualquier otro hilo que puede interrumpir el subproceso actual en el sueño, en el que
      caso InterruptedException es lanzado.
  9. 0

    de espera para algunos(como 10) segundos, el compilador a utilizar este método de clase estático

    TimeUnit.SEGUNDOS.sleep(10);

    es incluido en
    java.util.concurrente.TimeUnit libery

Dejar respuesta

Please enter your comment!
Please enter your name here