Problema com caminhos

Pessoal, estou tendo alguns problemas com caminhos (paths) no meu programa.
Primeiramente, peço desculpas se a dúvida é simples, mas procurei no Deitel de java e não achei ainda nada que me ajudasse, esse é meu primeiro semestre vendo Java na faculdade e ainda por cima estou cheio de coisas pra fazer/estudar, então não tem me sobrado muito tempo pra java.
Bom, tenho um projeto criado na IDE Eclipse com a seguinte estrutura:

  • blokus
    • src
      • blokus
        • Blokus.java
        • Board.java
        • ...
      • blokus.gui
        • BlokusFrame.java
        • InitPanel.java
        • ...
      • blokus.type
        • ...
      • blokus.img
        • seta.png
        • logo.png
        • ...

      Na classe InitPanel.java, preciso criar uma referência a imagem logo.png, que eu coloquei na pasta “blokus”(pasta do projeto)/src/blokus/img/seta.png, como mostrado na estrutura acima.
      Tentei fazer de duas maneiras. A primeira foi usando o código:

      ImageIcon logoIcon = new ImageIcon( "src/blokus/img/logo.png" );
      E a segunda foi fazendo:

      ImageIcon logoIcon = new ImageIcon( getClass().getResouce("../img/logo.png") );
      No Eclipse, as duas funcionaram.

      Depois disso, criei um “.jar” (runnable jar file) do projeto, mas na hora de executar ocorre erro (ele não encontra o arquivo .png).
      Considerando o primeiro código, o Eclipse considera como diretório base o diretório do projeto (o blokus mais acima na estrutura de arquivos mostrada). Quando ele exporta o projeto, a pasta base passa a ser o src, logo era para dar erro mesmo.
      Mas o segundo código achei estranho dar erro, pois o getClass.getResourse, pelo pouco que eu sei, usa como diretório base o gui (do pacote blokus.gui). Daí, se der um “…”, vou para o diretório blokus, de onde posso dar um “img/logo.png” para obter o arquivo. No Eclipse, tudo as mil maravilhas, mas quando vou executar o jar, dá erro (nullPointerException). Significa que ele não encontrou o recurso e retornou um ponteiro nulo, que vai gerar a exceção quando é passado como parâmetro do construtor de ImageIcon.
      Bom, se alguém souber qual o meu erro conceitual, qual a forma CORRETA de se fazer (que venha a dar certo na IDE e no JAR), eu agradeço (afinal, ser obrigado a executar somente no Eclipse, ninguém quer…).

      Só um pedido: a minha maior preocupação é com o erro conceitual que provavelmente estou fazendo.

Se alguém souber, ajuda aeh, porque só falta isso pra eu poder exportar o jar e rodar o programa fora do eclipse.

Enfim, consegui um dia livre para estudar java e resolvi o problema.
Vou deixar aqui para ajudar quem mais possa vir a ler:
Primeiro vou deixar o link para o jogo que eu implementei, em formato jar:
http://www.4shared.com/file/154399577/5e5300fe/blokus.html
Bom, não sei ainda exatamente o que o getResource faz (vou ter que ler a documentação da sun depois), mas se o caminho começar com “/”, ele devolve o arquivo a partir da estrutura de diretórios base do programa (diretório onde começa o pacote). Isso é, para referenciar uma classe em blokus.gui, deveria fazer:

getClass().getRetResource( "/blokus/gui/nomeDaClasse" )

daí, para o meu problema, bastaria usar:

ImageIcon logoIcon = new ImageIcon( getClass().getResouce("/blokus/img/logo.png") );

Bom, então agora o problema é mais fácil:
Porque as soluções dadas no primeiro post não funcionaram no jar? E o que faz o getResource de fato? Porque o getResouce do primeiro post funcionou no eclipse e não no .jar?
Se alguém souber, dá um help aí.