Java - concurrencia - Ayuda!!!!!!!

   
Vista:

concurrencia - Ayuda!!!!!!!

Publicado por Hernan (2 intervenciones) el 31/07/2008 16:47:07
Hola gente estoy haciendo un trabajo practico para la facu, consiste en un juego de autos, pero tengo un gran problema. cuando quiero comenzar la carrera me tira excepciones y me parece que es en la concurrencia, y es un tema que no lo manejo para nada. primero lo probe por separado y funcionaba, pero despues cuando integre todo ( las ventanas con la presentacion del juego ) y ponia comenzar juego me tira este problema.
Le paso el codigo y el error que me tira haber si me pueden dar una mano.
Error:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Cannot call invokeAndWait from the event dispatcher thread
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at javax.swing.SwingUtilities.invokeAndWait(Unknown Source)

Codigo:

public CicloCarrera(Partida partida1, VistaAuto2 vista){

this.Controlador =(ControlDelTecladoJugador1) (SingletonContenedorControladores.getInstancia()).getControlador(ControlDelTecladoJugador1.class.getName());;
this.partida1 = partida1;
this.vista= vista;
}
//aca esta el problema
private void dibuja() throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
vista.paintImmediately(0, 0, ANCHO, ALTO);
}
});
}

public void cicloPrincipalJuego() {

long tiempoViejo = System.nanoTime();
while (true) {
long tiempoNuevo = System.nanoTime();
float dt = (tiempoNuevo - tiempoViejo) / 1000000000f;
tiempoViejo = tiempoNuevo;
this.Controlador.Move(dt);
try {
dibuja();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


//this.carreraFinalizada = true;
this.vista.repaint();
}
}
}

Muchas gracias,
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:concurrencia - Ayuda!!!!!!!

Publicado por Tom (914 intervenciones) el 01/08/2008 10:42:39
Bueno, el fallo parece claro, está en la documentacion de invokeAndWait()

Creo que te sobra invokeAndwait(), haz la llamada a paintImmediately(), sin mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:concurrencia - Ayuda!!!!!!!

Publicado por jose josebalastro@hotmail.com (1 intervención) el 22/11/2011 21:01:03
Hola como te va, mira la verdad me parece bastante desubicado utilizar esta pagina para explicaciones de juegos absurdos, ya que millones de personas se mueren de hambre y vos en lo unico que pensas es en tu jueguito y en la utilizacion de una computadora sin conocimmientos especificos de programacion. Ademas me gustaria decirte que no puede ser que no sepas algo tan basico como eso. Te doy un consejo nene dedicate a otra cosa!
saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:concurrencia - Ayuda!!!!!!!

Publicado por Juan Palo Largo (1 intervención) el 22/11/2011 21:21:29
Estimado se detecta que tu error esta en colocar un símbolo de cierre sin haber hecho apretura del mismo.

private void dibuja() throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
vista.paintImmediately(0, 0, ANCHO, ALTO);
}
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar