Доброго вечера. Столкнулся с одной неприятной проблемой. Сидел смотрел запись одного вэбинара на тему создания приложения "Сапер" на языке Джава. Когда речь дошла о графике, написал код как и было указано в видео, но Idea не воспринимает оный. Вроде бы, все библиотеки у меня подключены. Облазил уже все, что только мог, переустанавливал 16 версию JDK и все бесполезно. Помогите как можно скорее, это важно.
private void initPanel ()
{
panel = new JPanel();
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponents(g);
for (Box box : Box.values())
g.drawImage ((Image)box.image, box.ordinal() * IMAGE_SIZE, 0, this);
}
};
panel.setPreferredSize (new Dimension(COLS * IMAGE_SIZE, ROWS * IMAGE_SIZE));
add (panel);
}
Выше предоставлен фрагмент кода где именно вылезает ошибка. Далее приведу код всего класса для общего понимания того, что вообще происходит:
import javax.swing.*;
import java.awt.*;
import Sweeper.Box;
public class JavaSweeper extends JFrame
{
private JPanel panel;
private final int COLS = 15;
private final int ROWS = 1;
private final int IMAGE_SIZE = 50;
public static void main (String [] args)
{
new JavaSweeper(); //Создание экземпляра программы
}
private JavaSweeper ()
{
setImages();
initPanel();
initFrame(); //Вызов инициализации фрейма
}
private void initPanel ()
{
panel = new JPanel();
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponents(g);
for (Box box : Box.values())
g.drawImage ((Image)box.image, box.ordinal() * IMAGE_SIZE, 0, this);
}
};
panel.setPreferredSize (new Dimension(COLS * IMAGE_SIZE, ROWS * IMAGE_SIZE));
add (panel);
}
//Подготовка заготовок
private void initFrame ()
{
pack ();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setTitle("Java Sweeper");
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
private void setImages ()
{
for (Box box : Box.values())
box.image = getImage(box.name());
}
private Image getImage (String name)
{
String filename = "img/" + name.toLowerCase() + ".png";
ImageIcon icon = new ImageIcon(getClass().getResource(filename));
return icon.getImage();
}
}