Arquivo .jar não carrega imagens

   Pessoal criei um arquivo .jar de um jogo de Damas que eu fiz, ele abre normalmente clicando no arquivo, só que ele não carrega as imagens do programa. Alguem sabe me dizer qual e o problema? Valeu.

Voce criou seu jogo no netbeans ?

Se sim, pega a pasta onde estao as imagens, e dentro da pasta onde esta do JAR, cria a pasta SRC, e ponha a pasta das imagens dentro dela.

UP! concordo.

Lembrando que depois vc deve mudar o caminho da imagem dentro do seu projeto…

  Não eu fiz no eclipse. No meu caso o arquivo .jar que eu gerei está dentro da pasta bin, junto com o manifest. É dentro dela que eu tenho que criar a pasta SRC certo? fiz isso e não deu certo. Não seria a src que já é criada automaticamente a acada projeto que você cria ? Pq já tinha outra src antes de eu criar essa, contendo os arquivos c/ a extensao .java ; Minha árvore de diretórios é a seguinte: D:\workspace\JogoDamas\bin(onde criei o arquivo .jar e a pasta SRC c/ as img) ; 

 Inicialmente eu tinha colocado a pasta c/ as img dentro de: D:\workspace\JogoDamas e qdo eu abro pelo eclipse ele abre normalmente com todas as img da aplicação. 
 Como é esse esquema de mudar o caminho dentro do projeto?  Alterei o local da pasta antiga pra pasta nova q vcs me falaram pra criar e continua sem exibir nada  :(  to em duvida... Vou postar minhas classes aqui: 
package game;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

/**
* Classe principal q implementa o Painel no Frame e deixa visivel
*
*/

public class Principal extends JFrame implements ActionListener {
	
	JLabel texto, nome, nomeori;
	ImageIcon imgDama;
	String nomeuser;
	JMenuBar barraMenus; // barra de menus
	JMenuItem itemdeMenu; // intem de um menu
	
	
	public Principal(){
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		
		//imgDama = new ImageIcon("../JogoDamas/imagens/titulo.jpg");
		imgDama = new ImageIcon("../JogoDamas/bin/SRC/imagens/titulo.jpg"); // caminho modificado aqui, coloquei a pasta q vcs pediram pra criar
		
		
		nome = new JLabel("Nome jogador:");
		nome.setBounds(600, 180, 100, 20);
		nome.setVisible(false);
		this.getContentPane().add(nome);
		
		nomeori = new JLabel("");
		nomeori.setBounds(700, 180, 100, 20);
		nomeori.setVisible(false);
		this.getContentPane().add(nomeori);
		
		
		barraMenus = new JMenuBar();
		this.setJMenuBar(barraMenus);
		
		JMenu arquivo = new JMenu("Arquivo");
		JMenu edit = new JMenu("Editar");
		barraMenus.add(arquivo);
		barraMenus.add(edit);
		
		JMenuItem novo = new JMenuItem("Novo Jogo");
		JMenuItem abrir = new JMenuItem("Recordes");
                JMenuItem sair = new JMenuItem("Sair");
        
                novo.addActionListener(this);
                sair.addActionListener(this);
        
                JMenuItem recortar = new JMenuItem("Recortar");
                JMenuItem copiar = new JMenuItem("Copiar");
                JMenuItem colar = new JMenuItem("Colar");
        
        arquivo.add(novo);
        // linha horizontal
		arquivo.addSeparator();
		arquivo.add(abrir);
		arquivo.addSeparator();
        arquivo.add(sair);
        
        edit.add(recortar);
        edit.addSeparator();
        edit.add(copiar);
        edit.addSeparator();
        edit.add(colar);
        		 
				
		texto = new JLabel(imgDama);
		texto.setBounds(180, 50, imgDama.getIconWidth(), imgDama.getIconHeight());
		texto.setVisible(true);
		this.getContentPane().add(texto);
		
		// add Painel Tabuleiro no Frame
		this.getContentPane().add(new Tabuleiro());
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		/* Posicao inicio Tabuleiro
		 * x=180 y=180
		 * 
		 * Posicao Final Tabuleiro
		 * x=495 y=495
		 *  
		 */
				
	}
	
	public void addNome(){
		nomeuser = JOptionPane.showInputDialog("Digite seu nome: "); // String recebendo o nome a ser digitado
		nome.setVisible(true); // deixa Label padrão do user visivel
		
		// label q recebe o nome digitado
		nomeori.setText(nomeuser);
		nomeori.setVisible(true);
		
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Principal().setVisible(true);			
		
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		String evento; 
		evento = arg0.getActionCommand();
		
		if(evento.equalsIgnoreCase("Sair")){
			System.exit(0);
			
		}
		if(evento.equalsIgnoreCase("Novo Jogo")){
			addNome(); // executa metodo p/ adicionar nome ao Label
						
		}	
	}

}
     Meu Painel caso vcs queiram ver, é onde eu criei o tabuleiro e todas as suas posições até agora: 
package game;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Tabuleiro extends JPanel  {

	int i,j;
	int size=45;
		
	public Tabuleiro(){
		
		this.setBackground(Color.WHITE);
		this.setVisible(true);
		
		
	}
	
	protected void paintComponent(Graphics g){
		super.paintComponent(g);
				
		Rectangle2D.Double r;
		Graphics2D g2 = (Graphics2D) g.create();
		final BasicStroke stroke = new BasicStroke(10.0f); // formato da borde
		float dashes[] = { 10 }; // comprimento do pontilhado em pixels 
		// cria linhas simulando bordas do tabuleiro 
		g2.setPaint(Color.BLACK); // 1ª linha horizontal
		g2.draw(new Line2D.Double(180,180,540,180)); 
		
		g2.setPaint(Color.BLACK); // 1ª linha vertical 
		g2.draw(new Line2D.Double(180,180,180,540)); 
		
		g2.setPaint(Color.BLACK); // 2ª linha horizontal 
		g2.draw(new Line2D.Double(180,540,540,540)); 
		
		g2.setPaint(Color.BLACK); // 2ª linha vertical 
		g2.draw(new Line2D.Double(540,540,540,180)); 
		
		
		//g2.setStroke(new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 10,dashes, 0));
		/**
		 * BasicStroke.CAP_ROUND = extremidades arredondadas
		 * BasicStroke.JOIN_ROUND = juncao de linhas arredondadas, Ex: em um vertice de um triangulo
		 * g2.draw(new Line2D.Double(20,30,320,150));
		 */
				
		// Usando for pra desenhar em toda a mesa os quad. Pretos
		for(i=2;i<6;i++)
			for(j=2;j<6;j++){
						
				g2.setColor(Color.BLACK); 
				r = new Rectangle2D.Double(i*2*size, j*2*size, size, size);
				g2.fill(r); // desenha a forma pintada
				
				r = new Rectangle2D.Double(i*2*size+size, j*2*size+size, size, size);
				g2.fill(r); // desenha a forma pintada
								
				
			}
			g2.setStroke(stroke);  // coloca borda no tabuleiro inteiro
			g2.dispose(); // joga tudo na tela
				
	}
		
}

Você retirou as imagens do local onde elas estavam quando você fez a aplicação no programa tenta colocar as imagens dentro do próprio programa.

As imagens podem ficar em qualquer lugar do JAR.

o ClassPath do referido JAR é sua raiz…

Se você colocou suas imagens dentro do META-INF

você pode carregá-las via: