Posta a Exception e a Classe Completa…
Mas Batendo o olho, bem provavelmente que está dando estouro nos métodos setIcons…
Talvez não ele esteja encontrando o path dos icons.
Tipo essa linha aqui button.setIcon(new ImageIcon(getClass().getResource(image)));
image? está faltando a extensão e as aspas … verifica ai.
Bom avancei mas está acontecendo outros problemas nesse código…
for(JLabelbutton:botao){//Aqui estava faltando instanciarbutton=newJLabel();button.setIcon(newImageIcon(getClass().getResource(image)));button.setBounds(300,100+(x*50),160,40);add(button);/* button.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { button.setIcon(new ImageIcon(getClass().getResource(image1))); button.setCursor(new Cursor(Cursor.HAND_CURSOR)); } @Override public void mouseReleased(MouseEvent e) { button.setIcon(new ImageIcon(getClass().getResource(image))); } }); */x++;}
Ele parou com os Nulls ,porem esse método do Mouse listener está gerando outra exception.
Deixei comentado este trecho, estou pesquisando…
Splayer
E porque você colocou como comentário os Listener?
Frmichetti
Local variable button defined in an enclosing scope must be final or effectively final
Splayer
coloca assim:
for (final JLabel button : botao) {
Solucao aceita
Frmichetti
Da um Ctrl c e Control v ai
importjava.awt.Cursor;importjava.awt.GridLayout;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.SwingUtilities;publicclassJButtonDiferenteextendsJFrame{/** * */privatestaticfinallongserialVersionUID=1308478526338090786L;publicJButtonDiferente(){this.setSize(600,400);this.setResizable(false);//Coloquei um layout Grid para Organizar melhor aqui os Botões lado a lado//Aqui pelas minhas imagens ficou torto this.setLayout(newGridLayout());this.setLocationRelativeTo(null);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidbotaoDiferente(Stringimage,Stringimage1){JLabel[]botao=newJLabel[3];intx=0;for(JLabelbutton:botao){//ERRO 1//Aqui estava faltando instanciar//Então você estava setando um icone em objeto não inicializado.button=newJLabel();button.setIcon(newImageIcon(getClass().getResource(image)));button.setBounds(300,100+(x*50),160,40);add(button);//ERRO 2//Tive que esternalizar o método para contornar o erro//Local variable button defined in an enclosing scope must be final or effectively finaladdListener(button,image,image1);x++;}}privatevoidaddListener(JLabelbutton,Stringimage,Stringimage1){button.addMouseListener(newMouseAdapter(){@OverridepublicvoidmousePressed(MouseEvente){button.setIcon(newImageIcon(getClass().getResource(image1)));button.setCursor(newCursor(Cursor.HAND_CURSOR));System.out.println("Mouse Pressed");}@OverridepublicvoidmouseReleased(MouseEvente){button.setIcon(newImageIcon(getClass().getResource(image)));System.out.println("Mouse Released");}});};publicstaticvoidmain(String[]args){//Utilize esse Método para invocar um Jframe, Antigamente estava criando a Janela e Desenhando de Forma Incorreta Exibindo a imagem cortadaSwingUtilities.invokeLater(()->{newJButtonDiferente().botaoDiferente("botao_menu.png","botao_menu1.png");});}}