Ho un problema che mi sta facendo sbattere la testa contro il muro da due giorni . Sto facendo un gioco progetto che prevede il caricamento delle immagini delle carte. Però proprio li mi da un errore di NUllPointerException. Ho provato a controllare e ricontrollare ma nn c'è nulla di errato.

Vi posto il codice :

codice:
 public class Gui extends JFrame implements iConsole {

	private static final String IMG_PATH = "SetteeMezzo/res/";

	private Container cp;
	private JLabel labelSfidante;
	private JLabel labelBanco;
	private JLabel labelCapitale;
	private JLabel labelPuntata;

	private JLabel labelCarteSfidante;
	private JPanel carteSfidante;

	private JLabel labelCarteBanco;
	private JPanel carteBanco;
	
	private boolean inizioSfidante;
	private boolean inizioBanco;

	public Gui() {
        super("Il gioco del setteemezzo");
		
		inizioSfidante  = true;
		inizioBanco = true;
		
		labelSfidante = new JLabel("Punti sfidante : 0");
		labelBanco = new JLabel("Punti del banco: 0");
		labelCapitale = new JLabel("Capitale: 0");
		labelPuntata = new JLabel("Puntata: 0");
		labelCarteSfidante = new JLabel("Carte dello sfidante");
		labelCarteBanco = new JLabel("Carte del banco");
		
	
		carteBanco = new JPanel();
		carteBanco.setLayout (new FlowLayout());
		
		carteSfidante = new JPanel();
		carteSfidante.setLayout(new FlowLayout());
		
		cp = getContentPane();
		cp.setLayout(new BorderLayout());
		
		JPanel creditoPuntata = new JPanel();
		creditoPuntata.setLayout(new GridLayout(2,2));
		creditoPuntata.add(labelCapitale);
		creditoPuntata.add(labelPuntata);
		creditoPuntata.add(labelSfidante);
		creditoPuntata.add(labelBanco);
		cp.add(creditoPuntata, BorderLayout.NORTH);
		
		
		JPanel tavoloGioco = new JPanel();
		tavoloGioco.setLayout(new GridLayout(0,1));
		tavoloGioco.add(labelCarteSfidante);
		tavoloGioco.add(carteSfidante);
		tavoloGioco.add(labelCarteBanco);
		tavoloGioco.add(carteBanco);
		cp.add(tavoloGioco, BorderLayout.CENTER);
		cp.add(carteSfidante, BorderLayout.AFTER_LAST_LINE);
		cp.add(carteBanco, BorderLayout.AFTER_LAST_LINE);
	    JLabel label = new JLabel();
	    label = loadImage("00.gif");
	    label.setBounds(20, 35, 65, 110);
	    carteSfidante.add(label);
		
		
	}

	public void stampaMsg(String msg) {
		
	   JOptionPane.showMessageDialog(null, msg, "", 0);
		
	}

	public boolean chiediSiNo(String msg) {
		int response =
			JOptionPane.showConfirmDialog(null,msg,"Seleziona una opzione",
					JOptionPane.YES_NO_OPTION);
		return response == JOptionPane.YES_OPTION;
	}

	public int chiediInteger(String msg) {
	    try
        {
            return Integer.parseInt(JOptionPane.showInputDialog(msg));
        }
        catch(NumberFormatException e)
        {
            return 0;
        }
	}

	public String chiediTesto(String msg) {
		 return JOptionPane.showInputDialog(msg);
	}

	public int videataIniziale() {
		Gui JFrame = new Gui();
        JFrame.setBounds(100, 150, 650, 500);
        JFrame.setDefaultCloseOperation(3);
        JFrame.show();
		return 0;
	}

	public void iniziaMano(int credito, int puntata) {
		labelCapitale.setText("Capitale: " + credito);
		labelPuntata.setText("Puntata " + puntata);
		carteBanco.removeAll();
		carteSfidante.removeAll();
		carteBanco.add(loadImage("00.gif"));
		carteSfidante.add(loadImage("00.gif"));
		inizioSfidante = true;
		inizioBanco = true;
	}

	public void videataMano(Carta carta, double punti, Giocatore g) {
		JLabel imgCarta = loadImage(nomeImmagineCarta(carta));
		if(g instanceof GiocatoreUmano)
		{
			if (inizioSfidante) carteSfidante.removeAll();
			inizioSfidante = false;
			carteSfidante.add(imgCarta);
			labelSfidante.setText("Punti sfidante: " + punti);

		} else 
		if(g instanceof BancoCPU)
		{
			if (inizioBanco) carteBanco.removeAll();
			inizioBanco = false;
			carteBanco.add(imgCarta);
			labelBanco.setText("Punti banco: " + punti);
		}
		pack();
	}

	private JLabel loadImage(String name) {
		JLabel lab = null;
		ClassLoader loader = getClass().getClassLoader();
		URL url = loader.getResource(IMG_PATH+name);
		lab = new JLabel(new ImageIcon(url));
		return lab;
	}

	private String nomeImmagineCarta(Carta c) {
		Seme seme = c.daiSeme();
		TipoCarta punto = c.daiPunto();
		return seme.toString()  + punto.toString() + ".gif";
	}
la riga dove da l'errore è quella presente in loadImage e precisamente " lab=new JLabel(new ImageIcon(url)). Ho provato anche a creare il package con le immagini ma niente. C'è una soluzione??