Il mio problema era questo. Per caricare un immagine usavo il metodo ImageIcon imageIcon = new ImageIcon("immagini/esempio.jpg"); e la cartella immagini si trovava nella stessa cartella del progetto (per esempio la cartella PrimoProgramma, questa cartella è quella che contiene le sottocartelle bin e src).
Se compilavo con eclipse non avevo problemi, le immagini venivano compilate correttamente. Se mettevo tutto in un jar le immagini non venivano compilate. Il jar conteneva il contenuto della cartella PrimoProgramma\bin, la cartella immagini e il file Manifest.mf che indica qual'è la classe principale.
Per far vedere le immagini nello jar va cambiato il codice del programma.
Anziche usare il metodo ImageIcon imageIcon = new ImageIcon("immagini/esempio.jpg");bisogna usare questi due metodi:
url = ClassLoader.getSystemResource("immagini/esempio.jpg");
ImageIcon imageIcon = new ImageIcon(url);
Se compili con eclipse le immagini vengono visualizzate e anche se crei il jar allo stesso modo di prima (cartella PrimoProgramma\bin, Immagini e Manifest.mf) vengono visualizzate le immagini. L'importante che la cartella Immagini, al momento della compilazione con eclipse, si trovi in PrimoProgramma\bin.
Adesso spero di essere stato più chiaro, se non hai ancora capito ti posso inviare il codice tramite msn almeno capisci bene la differenza.