Se vc for colocar um caminho relativo para suas imagens, esse caminho tem que começar a partir do seu diretório atual, ou seja, o diretório onde está o arquivo .class que vc está rodando…
Logo, para vc poder usar Imagens/logo.gif vc teria que estar em um diretório um nivel acima do diretório Imagens
diretorio_atual
|
|
Imagens
|
logo.gif
para vc poder referenciar o diretório C:/Imagens/, vc teria que colocar o caminho todo. O Computador não tem como adivinhar onde está o seu diretório Imagens. Se fosse assim, o que aconteceria se você tivesse dois diretórios chamados Imagens em locais diferentes?
Faça algo como
Icon logo = new ImageIcon( "C:/Imagens/logo.gif" );