首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将资源文件夹添加到Eclipse中的Java项目中

如何将资源文件夹添加到Eclipse中的Java项目中
EN

Stack Overflow用户
提问于 2015-01-14 10:13:36
回答 5查看 169.1K关注 0票数 54

我想要有一个地方来存储我的图像文件,以便在我的Java项目中使用(一个非常简单的类,它只是将图像加载到面板上)。我到处都找过了,找不到该怎么做。我该怎么做呢?

我尝试向项目中添加新文件夹,向项目中添加新的类文件夹,以及向项目中添加新的源文件夹。无论我做什么,我总是得到一个IOException。文件夹总是说它们在构建路径上,所以我不确定该怎么做。

代码语言:javascript
复制
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/作为类文件夹在构建路径中时,我运行了它,但它仍然不起作用。当我添加它的时候,我得到了一个弹出窗口,告诉我一些关于排除的过滤器的信息。但是当我从构建路径中的库中删除该文件夹,并将我的文件路径更改为:

代码语言:javascript
复制
image = ImageIO.read(new File("src/main/res/islands.png"));

我至少不再被抛出IOException了。我肯定没有正确地将图像添加到面板中,因为它没有显示出来,但至少它找到了文件(我想)。

EN

回答 5

Stack Overflow用户

发布于 2015-01-14 10:52:21

在"Add resource folder“中,构建路径-> Configure Build Path -> Source (选项卡) -> Add Folder -> Create new Folder

在新文件夹中添加"my-resource.txt“文件。然后在你的代码中:

代码语言:javascript
复制
    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();
票数 78
EN

Stack Overflow用户

发布于 2015-01-14 10:39:09

添加资源文件夹后,尝试执行以下操作:

代码语言:javascript
复制
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("test.png");

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

Stack Overflow用户

发布于 2019-11-19 01:17:07

Build Path -> Configure Build Path -> Libraries (Tab) -> Add Class文件夹,然后选择您的文件夹或创建一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27934796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档