Эта строка:
g.drawImage(subImages[row][col],col*MAIN_IMAGE_WIDTH,row*MAIN_IMAGE_HEIGHT,null);
должна быть
g.drawImage(subImages[row][col],col*SMALL_IMAGE_WIDTH,row*SMALL_IMAGE_HEIGHT,null);
С вашим текущим кодом вы выходите за пределы панели после рисования первого вспомогательного изображения (при условии, что ваша панель * Размер 1007 *.
С этим изменением, похоже, все работает, как ожидалось. Я добавил следующий код в ваш класс MainImage
, чтобы получить рабочий пример:
@Override
public Dimension getPreferredSize()
{
return new Dimension(MAIN_IMAGE_WIDTH, MAIN_IMAGE_HEIGHT);
}
public static void main(String[] args)
{
try
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new MainImage());
f.pack();
f.setVisible(true);
}
catch(Exception e)
{
e.printStackTrace();
}
}