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