public class MyApplet extends JApplet {
/**
*
*/
private static final long serialVersionUID = 1L;
public static MyApplet myapplet;
public Karta[] talia = new Karta[109];
public Karta[] karty = new Karta[109];
public static Karta[] stosOdkryty = new Karta[109];
public Board b;
public Board2 b2;
static public int j = 108;

public void tworzTalie() {
	talia[0] = null;
	for (int i = 1; i <= 108; i++) {
		URL url = this.getClass().getResource(i + ".jpg");
		Image image = getImage(url);
		talia[i] = new Karta(image, i);
	}
}

public void rozdanie() {
	int x = 84;
	setLayout(null);
	karty[0] = null;
	for (int i = 1; i <= 15; i++) {
		karty[i] = talia[i];
		talia[i] = null;
		karty[i].setBounds(x += 20, 445, 93, 145);
		this.add(karty[i]);
	}
}

public void tworzPlansze() {
	setLayout(new BorderLayout());
	b = new Board();
	b2 = new Board2();
	b.setBounds(0, 0, 580, 600);
	b2.setBounds(580, 0, 220, 600);
	this.add(b);
	this.add(b2);
}

@Override
public void init() {
	myapplet = this;
	this.setSize(800, 600);

	tworzTalie();
	rozdanie();
	tworzPlansze();
}

}

public class Karta extends JComponent {
/**
*
*/
private static final long serialVersionUID = 1L;
private int numer;
private Image image;
public int a = 0;
public int b = 0;

public Karta(Image image, int nr) {
	this.numer = nr;
	this.image = image;
	this.addMouseListener(new MouseListener() {
		@Override
		public void mouseClicked(MouseEvent arg0) {
			if (b == 0) {
				if (a == 0) {
					Karta.this.setBounds(Karta.this.getX(), Karta.this.getY() - 40, 93, 145);
					a = 1;
					Odloz.wysuniete += 1;
					System.err.println(Odloz.wysuniete);
				} else if (a == 1) {
					Karta.this.setBounds(Karta.this.getX(), Karta.this.getY() + 40, 93, 145);
					a = 0;
					Odloz.wysuniete -= 1;
					System.err.println(Odloz.wysuniete);
				}
			}
		}

		@Override
		public void mouseEntered(MouseEvent arg0) {
		}

		@Override
		public void mouseExited(MouseEvent arg0) {
		}

		@Override
		public void mousePressed(MouseEvent arg0) {
		}

		@Override
		public void mouseReleased(MouseEvent arg0) {
		}
	});
}

@Override
public void paintComponent(Graphics g) {
	if (this.image != null)
		g.drawImage(this.image, 0, 0, this);
}

}

class Board2 extends JComponent {
/**
*
*/
private static final long serialVersionUID = 1L;

public Board2() {

}

@Override
public void paintComponent(Graphics g) {

	final Graphics2D g2d = (Graphics2D) g;
	g2d.setColor(new Color(0, 128, 255));
	g2d.fillRect(580, 0, 220, 600);
	
	Odloz odl = new Odloz();
	odl.setBounds(585, 540, 100, 50);
	add(odl);
	Melduj mel = new Melduj();
	mel.setBounds(695, 540, 100, 50);
	add(mel);
	Zakryte zak = new Zakryte();
	zak.setBounds(585, 485, 100, 50);
	add(zak);
	Odkryte odk = new Odkryte();
	odk.setBounds(695, 485, 100, 50);
	add(odk);
}

}

public class Odloz extends JButton {
/**
*
*/
private static final long serialVersionUID = 1L;
public static int wysuniete = 0;

public Odloz() {
	super("ODŁÓŻ");
	this.addMouseListener(new MouseListener() {
		@Override
		public void mouseClicked(MouseEvent arg0) {
			if (wysuniete == 1) {
				for (int i = 1; i <= 15; i++) {
					if (MyApplet.myapplet.karty[i].a == 1) {
						MyApplet.myapplet.stosOdkryty[MyApplet.myapplet.j] = MyApplet.myapplet.karty[i];
						MyApplet.myapplet.remove(MyApplet.myapplet.karty[i]);
						MyApplet.myapplet.stosOdkryty[MyApplet.myapplet.j].b = 1;
						MyApplet.myapplet.j--;
					}
				}
				for (int i = (MyApplet.myapplet.j + 1); i <= 108; i++) {
					MyApplet.myapplet.stosOdkryty[i].setBounds(320, 160, 93, 145);
					MyApplet.myapplet.add(MyApplet.myapplet.stosOdkryty[i]);
				}
				MyApplet.myapplet.remove(MyApplet.myapplet.b);
				MyApplet.myapplet.add(MyApplet.myapplet.b);
				MyApplet.myapplet.repaint();
				System.out.println(wysuniete);
				wysuniete -= 1;
				System.out.println(wysuniete);
			}
		}

		@Override
		public void mouseEntered(MouseEvent arg0) {
		}

		@Override
		public void mouseExited(MouseEvent arg0) {
		}

		@Override
		public void mousePressed(MouseEvent arg0) {
		}

		@Override
		public void mouseReleased(MouseEvent arg0) {
		}
	});
}

}

Mam taki problem, karty odkładają się na jedną kupkę, wszystko działa dobrze dopóki nie zostanie jedna karta, gdy chcę odłożyć na tą kupkę tą ostatnią kartę (15) to wywala jakiś błąd. O co to może chodzić?