[ Foro de Java ]

metodo remove() de arraylist no funciona

19-Mar-2021 23:18
Invitado (Rocio)
0 Respuestas

Hola buenas noches. Estoy haciendo un juego con mvc y rmi y tengo problemas para ejecutar el metodo remove() del arraylist cartaEnMano que esta dentro del metodo tirarCarta de la clase Juego. No borra el elemento deseado. Probe utilizando clear() para ver si borraba todos los elementos del array pero tampoco funciona. Nose que esta pasando. Antes de implementar rmi andaba bien. Nose que es lo que ocurre. Les dejo los fragmentos de codigo:


public class Jugador implements Serializable {

public ArrayList<Cartas> cartasEnMano = new ArrayList<>();


public Jugador (String nombre){
this.nombre=nombre;
this.puntos=0;
this.escoba=0;

}


}





public void agregarCarta(Cartas carta){
if (carta!=null) {
cartasEnMano.add(carta);

}
}





public String getNombre() {
return nombre;
}

}




public class Juego extends ObservableRemoto implements IJuego{

public ArrayList<Jugador> jugadores = new ArrayList<>(); //Lista de jugadores
public static ArrayList<Cartas> mesa = new ArrayList<>(); //Cartas en mesa

public Juego() {
estado=INICIANDO_JUEGO;
jugadorActual = 0;
ronda = 0;
}




@Override
public void agregarJugador (String nombre) throws RemoteException {

jugadores.add(new Jugador(nombre));
notificarObservadores(2);
}


public void tirarCarta( int op, Jugador j) throws RemoteException {
mesa.add(j.cartasEnMano.get(op));
j.cartasEnMano.remove(op);

notificarObservadores(5);


}




Esa es la parte de la vista en donde se llama al metodo tirarCarta:
boton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {

miControl.tirarCarta(r,miControl.getJugador());
indice=0;
r=0;
}

}



catch (RemoteException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}




}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...