Imagem em JButton dando errado

Pessoal, tô tentando colocar imagem em um botão, mas não está dando certo:
Tenho uma pasta chamada Imagens, dentro de src

A chamada ao método é essa:

auxiliaGui.montaBotao("Pagar", "Limpar", "/Imagens/alterar.png", "/Imagens/alterar.png")

O método é esse:

public Component montaBotao(String um, String dois, String caminho1, String caminho2) { JButton btnUm = new JButton(um); btnUm.setIcon(new javax.swing.ImageIcon(getClass().getResource(caminho1))); //esssa é a linha 27 JButton btnDois = new JButton(dois); btnDois.setIcon(new javax.swing.ImageIcon(getClass().getResource(caminho2))); return ButtonBarFactory.buildCenteredBar(btnUm, btnDois); }

E o erro é esse:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source) at interfaceGrafica.AuxiliaGUI.montaBotao(AuxiliaGUI.java:27) at interfaceGrafica.MontaPagForm.montaEfetuaPagForm(MontaPagForm.java:52) at interfaceGrafica.Principal$12.actionPerformed(Principal.java:221) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

Vale ressaltar q a imagem está dentro da pasta!
Grato

Tenta colocar um . antes da primeira /

auxiliaGui.montaBotao(“Pagar”, “Limpar”, “./Imagens/alterar.png”, “./Imagens/alterar.png”)

E certifique de que as letras maiúsculas/minúsculas conhecidem.

Experimenta retirar a barra inicial. Quando o endereço começa com barra (/), ele é verificado como endereço absoluto.

caminho1 = "Imagens/alterar.png";
btnUm.setIcon(newjavax.swing.ImageIcon(getClass().getResource(caminho1))); //esssa é a linha 27

Da especificação das API’s:

Como a imagem não é localizada, um valor null é passado como parâmetro ao construtor do ImageIcon.

Vê se dá certo…

Pessoal, tentei das duas formas, mas nenhuma deu certoe continua dando o mesmo erro.

Até mudei a estrutura agora, tenho um pacote chamado X dentro de src, e dentro desse pacote X tenho a pasta chamada imagens, mas ainda assim continua dando erro, já tentei:

“Imagens/alterar.png”
“./Imagens/alterar.png”
“/Imagens/alterar.png”

A minha classe java está dentro do pacote X.

Grato

Cara, fiz um teste aqui, bem idiota, só prá ver a questão da imagem. Fiz no windows, compilando diretamento no javac. A montagem do botão eu copiei do seu código. E funcionou de primeira!!! Dá uma olhada…

Meu código:

package testeX;

import javax.swing.*;

public class Teste extends JFrame {
  JButton btnUm;

  public Teste (){
    super();
    btnUm = new JButton("textoUm");
    btnUm.setIcon(new javax.swing.ImageIcon(getClass().getResource("imagens/duke.png")));
    add (btnUm);
    pack();
    setVisible(true);
  }

  public static void main (String[] args){
    new Teste();
  }
}

Minha estrutura de diretórios:

testeX/
+--- Teste.class
+--- imagens/
     +--- duke.png

Vê se ajuda…