it-roy-ru.com

Как добавить папку ресурсов в мой проект 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);


}


}

Правка: что-то, что работало для меня, и я понятия не имею, почему, было добавить папку main/res/ в качестве папки класса, а затем удалить ее. Я запустил его, пока /main/res/ был частью пути сборки как папка класса, и он все еще не работал. Когда я добавил его, у меня появилось всплывающее окно, которое сообщило мне что-то об исключенных фильтрах. Но когда я удалил папку из библиотек в пути сборки и изменил путь к файлу:

image = ImageIO.read(new File("src/main/res/islands.png"));

Я по крайней мере прекратил получать IOException брошенный. Я не должен добавлять изображение на панель правильно, потому что оно не отображается, но, по крайней мере, он нашел файл (я думаю).

33
redeagle47

Когда в "Добавить папку ресурсов", Путь сборки -> Настроить путь сборки -> Источник (вкладка) -> Добавить папку -> Создать новую папку 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();
62
Lautaro Cozzani

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

Шаг 1 -> Щелкните правой кнопкой мыши на Java Project, выберите опцию «Свойства» Step 1--> Right Click on Java Project, Select the option "Properties"

Шаг 2 -> Выберите «Путь сборки Java» в боковом меню слева, убедитесь, что вы находитесь на вкладке «Источник», нажмите «Добавить папку» Select "Java Build Path" from the left side menu, make sure you are on "Source" tab, click "Add Folder"

Шаг 3 -> нажмите кнопку «Создать новую папку ...», доступную внизу окна Click the option "Create New Folder..." available at the bottom of the window

Шаг 4 -> введите имя новой папки как «resources» и нажмите «Finish» Enter the name of the new folder as "resources" and then click "Finish"

Шаг 5 -> Теперь вы сможете увидеть вновь созданную папку «resources» в вашем Java-проекте. Нажмите «Ok», снова нажмите «Ok»
Now you'll be able to see the newly created folder "resources" under your Java project, Click "Ok", again Click "Ok"

Последний шаг -> Теперь вы должны увидеть новую папку "resources" в вашем проекте Java
Now you should be able to see the new folder "resources" under your Java project

10
mannedear

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

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

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

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

Пример 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);
0
jones j alapat