Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al mover JLabels con Hilos

Estas en el tema de Problema al mover JLabels con Hilos en el foro de Java en Foros del Web. Hola. Me podrían ayudar. He estado haciendo una simulación de carrera de caballos y los caballos son Labels. Cuando uso Label se mueven poco a ...
  #1 (permalink)  
Antiguo 11/05/2009, 16:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Problema al mover JLabels con Hilos

Hola. Me podrían ayudar.
He estado haciendo una simulación de carrera de caballos y los caballos son Labels. Cuando uso Label se mueven poco a poco hasta llegar el fin. El problema es que necesito usar JLabel ya que solo ellos permiten poner imagen de fondo, pero al moverlos con los hilos no se mueven poco a poco sino que aparecen en el objetivo.

Para hacerme entender mejor copiaré el código.
Primero debo especificar que tengo 5 labels llamados:
  1. lblCaballo1
  2. lblCaballo2
  3. lblCaballo3
  4. lblCaballo4
  5. lblCaballo5

El siguiente código va dentro de un botón llamado btnJugar

Código:
btnJugar.setEnabled(false);
    for(int i=0; i<=130; i++){
            int x = lblCaballo1.getX();
	    int y = lblCaballo1.getY();
	    
	    int x2 = lblCaballo2.getX();
	    int y2 = lblCaballo2.getY();
	    
	    int x3 = lblCaballo3.getX();
	    int y3 = lblCaballo3.getY();
            
            int x4 = lblCaballo4.getX();
	    int y4 = lblCaballo4.getY();
            
            int x5 = lblCaballo5.getX();
	    int y5 = lblCaballo5.getY();
            
    	
	    /*int valX1 = o.cab1;
	    int valX2 = o.cab2;
	    int valX3 = o.cab3;*/
	    int cab1 = (int)(Math.random()*10);
	    int cab2 = (int)(Math.random()*10);
	    int cab3 = (int)(Math.random()*10);
            int cab4 = (int)(Math.random()*10);
            int cab5 = (int)(Math.random()*10);
	    
	    //lblCaballo4.setText(Integer.toString(i));
	    //lblCaballo5.setText(Integer.toString(cab2));
	    //lblCaballo6.setText(Integer.toString(cab3));
	    
	        try {
		            Thread.sleep(100);
                            int incre1 = x + cab1;
                            int incre2 = x2 + cab2;
                            int incre3 = x3 + cab3;
                            int incre4 = x4 + cab4;
                            int incre5 = x4 + cab5;
                            
                            
                            lblCaballo1.setLocation(incre1, y);                            
		            lblCaballo2.setLocation(incre2, y2);
		            lblCaballo3.setLocation(incre3, y3);
                            lblCaballo4.setLocation(incre4, y4);
                            lblCaballo5.setLocation(incre5, y5);
                            
                            if(incre1>incre2 && incre1>incre3 && incre1>incre4 && incre1>incre5) {
                                lblGanador.setText(lblCaballo1.getText());
                            }
                            
                            if(incre2>incre1 && incre2>incre3 && incre2>incre4 && incre2>incre5) {
                                lblGanador.setText(lblCaballo2.getText());
                            }
                            
                            if(incre3>incre1 && incre3>incre2 && incre3>incre4 && incre3>incre5) {
                                lblGanador.setText(lblCaballo3.getText());
                            }
                            
                            if(incre4>incre1 && incre4>incre2 && incre4>incre3 && incre4>incre5) {
                                lblGanador.setText(lblCaballo4.getText());
                            }
                            
                            if(incre5>incre1 && incre5>incre2 && incre5>incre3 && incre5>incre4) {
                                lblGanador.setText(lblCaballo5.getText());
                            }
	        } catch (InterruptedException ex) {
	            System.out.println("Error: " + ex.getMessage());
	        }
    
	}
lblGanador es un label que va diciendo qué label va primero. El código funciona muy bien con Label. Pero no con JLabel que es lo que necesito para poder poner imágenes de caballos. No sé si me podría ayudar.

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:25.