Mexendo com imagens

Sou novo em java e queria utilizar imagens no meu projeto.
Por enquanto estou fazendo assim

lblImage.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/imagem.jpg")));

Isso em uma label (ps nao vai ficar assim vou consertar depois criar classe para imagens e talz)
qual o melhor jeito de utilizar imagens em um projeto

pois quero que a imagem se redimensione de acordo com a window

para fazer isso estava pensando em um calculo que quando o tamanho da janela é modificado todos os componentes aumentam proporcionalmente
e quando a usuario muda apenas o lado ela aumenta a altura proporcionalmente (isso vale para a altura tambem)
mais isso eu vou fazer depois

Como eu utilizo imagens ,redimenciono e atualizo
porque quando eu faço isso

lblImage.setIcon(new javax.swing.ImageIcon(getClass() .getResource("/Imagens/ad1.jpg")));
e depois coloco o mesmo codigo com outra imagem ele da erro

lblImage.setIcon(new javax.swing.ImageIcon(getClass() .getResource("/Imagens/ad2.jpg")));

como eu faço pra limpar o setIcon? se for o caso
ou como atualizo o Icon???

Por favor, não use marcações para o óbvio, como pedir [Ajuda], dizer que tem [Dúvida] ou solicitar [Urgência].

Deixe para informar coisas úteis, como o fato do seu tópico ser [Resolvido] ou então, alguma tecnologia específica (informar que é [Android] e não JME no fórum de mobile, por exemplo).

Use o JImagePanel, do projeto Towel:
http://pontov.com.br/site/java/48-java2d/93-uma-visao-rapida-sobre-o-java-2d

Se quiser aprender a manipular imagens em Java (para um dia fazer um editor de imagens), leia o seguinte tópico:
http://www.guj.com.br/java/244860-roadmap-processamento-de-imagens