Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Ruusa en 5 Marzo 2021, 17:33 pm



Título: Error con arraylist
Publicado por: Ruusa en 5 Marzo 2021, 17:33 pm
Hola buenas tardes, me sale el siguiente error:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 1


Cuando ejecuto este codigo:

public void menuJugador() {
JLabel cartaNum = new JLabel();
cartaNum.setBounds(420,250,120,120);


ImageIcon imagen = new ImageIcon(miControl.getJugador().cartasEnMano.get(indice)+".jpg");
JLabel btn = new JLabel();
btn.setBounds(270,350,120,180);

JLabel turno = new JLabel("Turno de: "+miControl.getJugador().getNombre());
turno.setBounds(0,0,200,20);
panel.add(turno);


JButton boton = new JButton("Siguiente");
boton.setBounds(420,360,100,30);


JButton boton3 = new JButton("Tirar");
boton3.setBounds(420,410,100,30);

JButton boton4 = new JButton("Agrupar");
boton4.setBounds(420,460,100,30);



btn.setIcon(new ImageIcon(imagen.getImage().getScaledInstance(btn.getWidth(),btn.getHeight(),Image.SCALE_SMOOTH)));
panel.add(btn);
panel.add(boton);
panel.add(boton3);
panel.add(boton4);
panel.add(cartaNum);
boton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (indice < miControl.getJugador().cartasEnMano.size()) {
r=indice;
ImageIcon imagen = new ImageIcon(miControl.getJugador().cartasEnMano.get(indice)+".jpg");
cartaNum.setText("Carta numero: "+ indice);
btn.setIcon(new ImageIcon(imagen.getImage().getScaledInstance(btn.getWidth(),btn.getHeight(),Image.SCALE_SMOOTH)));
indice++;

} else {
indice=0;
r=0;
}

}

} );

boton3.addActionListener(new ActionListener() { //al presionar este boton salta el error
public void actionPerformed(ActionEvent e) {
miControl.tirarCarta(r,miControl.getJugador()); ¿
indice=0;
r=0;


}




});

------------------------------------------------------------------------------------------------------------------------------------------


public void tirarCarta( int op, Jugador j) {
//op va a ser la carta a tirar y jugador va a ser el jugador que la tira
mesa.add(j.cartasEnMano.get(op)); //mesa es un arrayList y cartas en mano es un arraylist que
esta en la clase Jugador
j.cartasEnMano.remove(j.cartasEnMano.get(op));


}


Si alguien me puede ayudar se lo agradeceria


Título: Re: Error con arraylist
Publicado por: rub'n en 5 Marzo 2021, 23:38 pm
hola,

Seguro que varias veces no se te comento lo del Geshi para ver el codigo mejor?

y pasa el source completo.

e igual creo que el error esta en tirarCarta, pero el index que le pasas al ArrayList no esta.