JComboBOx

0 respostas
M

Alguém pode me dizer o que há de errado nesta simples classe:

package ComboBoxFrame;

import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ComboImageBox extends JFrame{
    
    private JComboBox imagensJComboBox;
    private JLabel JLabelImagem;
    
    private String[] names = {"imagem1.png","imagem2.png","imagem3.png","imagem4.png"};
    private Icon[] icons = {
                            new ImageIcon(getClass().getResource(names[0])),
                            new ImageIcon(getClass().getResource(names[1])),
                            new ImageIcon(getClass().getResource(names[2])),
                            new ImageIcon(getClass().getResource(names[3]))
                           };
    
    public ComboImageBox(){
        super("Teste JComboBox com Imagens");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(350,350);
        setVisible(true);
        
        setLayout(new FlowLayout());
        
        //label para apresentar as imagens
        JLabelImagem.setIcon(icons[0]);
        add(JLabelImagem);
        
        //JComboBox para escolher as imagens
        imagensJComboBox = new JComboBox(names);
        imagensJComboBox.setMaximumRowCount(3);
        imagensJComboBox.addItemListener(new JComboListener());
        add(imagensJComboBox);
        
        
    }
    
    class JComboListener implements ItemListener{

        @Override
        public void itemStateChanged(ItemEvent e) {
            
            if(e.getStateChange()== ItemEvent.SELECTED){
                JLabelImagem.setIcon(icons[imagensJComboBox.getSelectedIndex()]);
            }
            
        }
        
    }
    
    public static void main(String []args){
        new ComboImageBox();
    }
}

Está me devolvendo o erro

Exception in thread "main" java.lang.NullPointerException
	at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
	at ComboBoxFrame.ComboImageBox.<init>(ComboImageBox.java:19)
	at ComboBoxFrame.ComboImageBox.main(ComboImageBox.java:61)
Java Result: 1
Criado 15 de novembro de 2012
Respostas 0
Participantes 1