private void crearPanelesTanque() {
    vista.getPanelesJugadores().clear();
    for (Tanque tanque : torneo.getTanques())
      vista.getPanelesJugadores().add(crearPanelJugador(tanque));

    vista.getPanelTanques().removeAll();
    for (JPanel panel : vista.getPanelesJugadores()) vista.getPanelTanques().add(panel);
  }
 public void propertyChange(PropertyChangeEvent evento) {
   if (evento.getSource().getClass() == Ronda.class)
     if (enUltimaRonda) vista.getBtnMostrar().setText("Finalizar");
     else vista.getBtnMostrar().setText("Próxima ronda");
   else if (evento.getSource().getClass() == Tanque.class) {
     int indice = torneo.getTanques().indexOf(evento.getSource());
     if (evento.getPropertyName().equals("vida")) {
       actualizarDatosTanque(indice, 5, evento.getNewValue().toString());
       if (evento.getNewValue().equals(0)) desactivarTanque(indice);
     } else if (evento.getPropertyName().equals("energia"))
       actualizarDatosTanque(indice, 6, evento.getNewValue().toString());
     else if (evento.getPropertyName().equals("puntuacion"))
       actualizarDatosTanque(indice, 7, evento.getNewValue().toString());
   } else if (evento.getSource().getClass() == Torneo.class) enUltimaRonda = true;
 }
  public void windowOpened(WindowEvent e) {

    torneo.addPropertyChangeListener(this);

    for (Ronda ronda : torneo.getRondas()) ronda.addPropertyChangeListener(this);

    for (Tanque tanque : torneo.getTanques()) tanque.addPropertyChangeListener(this);

    crearPanelesTanque();

    repintar();

    animador = new PAnimador(vista.getPanelJuego());
    animador.setFps(24);
    animador.antialiasing(true);
    animador.setFondo(Color.GRAY);
    animador.agregarAnimable(torneo);
  }