私は持っていHashMap<Integer, JButton>
ます。null
問題は、JButton ではなく、取得した値を取得しようとするときです。最後の行で centerPanel に「butt」を追加しようとすると、例外が発生します。以下は、私のコードのスニペットであり、コードを全体的に見るための 2 つのクラス フィールドです。
public class GUI {
private JPanel centerPanel;
private JButton button;
private JLabel label;
private Image source;
private Image image;
private HashMap<Integer, JButton> images = new HashMap<>();
public GUI() {
centerPanel = new JPanel();
ImageIcon sid = new ImageIcon(GUI.class.getResource("koala.jpg"));
source = sid.getImage();
int ind = 0;
for ( int i = 0; i < 4; i++) {
for ( int j = 0; j < 3; j++) {
if ( j == 2 && i == 3) {
label = new JLabel("");
centerPanel.add(label);
} else {
button = new JButton();
button.addActionListener(this);
images.put(new Integer(++ind), button);
image = createImage(new FilteredImageSource(source.getSource(),
new CropImageFilter(j*width/3, i*height/4,
(width/3)+1, height/4)));
button.setIcon(new ImageIcon(image));
}
}
}
Random random = new Random();
for (int i=0; i<11; i++) {
Integer numb = new Integer(random.nextInt(images.size()));
JButton butt = images.get(1);
centerPanel.add(butt);
images.remove(numb);
}
setSize(1024, 768);
setTitle("Puzzle");
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
}
NullPointerException が発生するのはなぜですか? 整数を明示的に作成する必要がないことは承知しています。