Pregunta

Estoy tratando de pintar lentamente un rectángulo utilizando dos llamadas del método. Filrecto con la llamada de hilo. Lo que está sucediendo es que el método de sueño se llama antes de que se inicialice el rectángulo, por lo que parece que el rectange ya ha sido pintado. Solo quiero pintar parte del rectange, hacer una pausa durante cinco segundos y luego pintar la parte antother.

Aquí está mi código -

public void paint(Graphics g, int w, int h) {
    g.drawRect(0, 0, w - 1, h - 1);
    g.fillRect(0, 0, 10, h-1);

   try {
    Thread.sleep(5000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

    g.fillRect(0, 0, 50, h-1);
 }

Gracias

¿Fue útil?

Solución

Siempre es una muy mala idea hacer que el hilo de eventos bloquee, sin importar la plataforma.

Lo que debería estar haciendo es definir variables en algún lugar que almacene la extensión actual del área que desea pintar. Actualice esas variables en un hilo separado (puede bloquear ese hilo todo lo que desea) y llame al método Repaint () para programar una repinta cada vez que actualice las variables.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top