Подтвердить что ты не робот

Как добавить папку ресурсов в проект Java в Eclipse

Я хочу иметь место для хранения файлов изображений для использования в моем проекте 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. Я не должен добавлять изображение на панель правильно, потому что он не отображается, но, по крайней мере, он нашел файл (я думаю).

4b9b3361

Ответ 1

Чтобы добавить папку resoure, Путь сборки → Настроить путь сборки → Источник (вкладка) → Добавить папку → Создать новую папку enter image description here

добавить файл "my-resource.txt" в новую папку. Затем в вашем коде:

    InputStream res =
    Main.class.getResourceAsStream("/my-resource.txt");

    BufferedReader reader =
        new BufferedReader(new InputStreamReader(res));
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
    reader.close();

Ответ 2

Попробуйте дать полный путь для чтения изображения.

Пример  image = ImageIO.read(новый файл ( "D:/work1/Jan14Stackoverflow/src/Strawberry.jpg" ));

ваш код не создает никаких исключений после предоставления полного пути. Если вы хотите просто прочитать файл изображения в Java-коде. Обратите внимание на следующее: http://docs.oracle.com/javase/tutorial/2d/images/examples/LoadImageApp.java

Если объект вашего класса создан в конце, ваш код отлично работает для меня и отображает изображение

// PracticeFrame pframe = new PracticeFrame();//comment this

new PracticeFrame().add(panel);

Ответ 3

Чтобы ответить на ваш вопрос, опубликованный в названии этой темы...

Шаг 1 → Щелкните правой кнопкой мыши на Java Project, выберите опцию "Свойства", Шаг 1 - > Щелкните правой кнопкой мыши на Java Project, выберите опцию

Шаг 2 → Выберите "Путь сборки Java" в меню слева, убедитесь, что вы находитесь на вкладке "Источник", нажмите "Добавить папку", Выбрать

Шаг 3 → Нажмите кнопку "Создать новую папку..." в нижней части окна Нажмите кнопку

Шаг 4 → Введите имя новой папки как "ресурсы", а затем нажмите "Готово", Введите имя новой папки как/a >

Шаг 5 → Теперь вы сможете увидеть вновь созданные папки "ресурсы" в вашем проекте java, нажмите "ОК", снова нажмите "ОК"
Теперь вы сможете увидеть вновь созданную папку и ресурсы в вашем проекте java, щелкните

Заключительный шаг → Теперь вы можете увидеть новую папку "Ресурсы" в проекте java

Теперь вы можете увидеть новую папку и ресурсы под вашим проектом java

Ответ 4

После добавления папки ресурса попробуйте следующее:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("test.png");

try {
    image = ImageIO.read(input);
} catch (IOException e) {
    e.printStackTrace();
}