Я хочу иметь место для хранения файлов изображений для использования в моем проекте Java (действительно простой класс, который просто загружает изображение на панель). Я везде искал и не могу найти, как это сделать. Как это сделать?
Я попытался добавить в проект новую папку, добавив в проект новую папку классов и добавив новую исходную папку в проект. Независимо от того, что я делаю, я всегда получаю IOException
. Папки всегда говорят, что они находятся на пути построения, поэтому я не уверен, что делать.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PracticeFrame extends JFrame{
private static BufferedImage image;
Thread thread;
public PracticeFrame() {
super();
setPreferredSize(new Dimension(640,480));
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main (String[] args) {
PracticeFrame pframe = new PracticeFrame();
try {
image = ImageIO.read(new File("/islands.png"));
} catch (IOException e) {
e.printStackTrace();
}
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image,0,0,null);
}
};
panel.setBackground(Color.BLUE);
panel.repaint();
pframe.add(panel);
}
}
EDIT: Что-то, что сработало для меня, и я понятия не имею, почему добавлял папку main/res/
в качестве папки класса, а затем удалял ее. Я запускал его, а /main/res/
был частью пути сборки в виде папки класса, и он все еще не работал. Когда я добавил его, у меня появилось всплывающее окно, в котором рассказывалось об исключенных фильтрах. Но когда я удалил папку из библиотек в пути сборки и изменил свой путь к файлу:
image = ImageIO.read(new File("src/main/res/islands.png"));
Я, по крайней мере, перестал бросать IOException
. Я не должен добавлять изображение на панель правильно, потому что он не отображается, но, по крайней мере, он нашел файл (я думаю).