繁体   English   中英

如何在 Eclipse 中向我的 Java 项目添加资源文件夹

[英]How do I add a resources folder to my Java project in 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 我一定没有正确地将图像添加到面板,因为它没有显示出来,但至少它找到了文件(我认为)。

在“添加资源文件夹”时,构建路径 -> 配置构建路径 -> 源(选项卡) -> 添加文件夹 -> 创建新文件夹在此处输入图片说明

在新文件夹中添加“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();

要回答您在本主题标题中发布的问题...

步骤 1--> 右键单击​​ Java 项目,选择“属性”选项步骤 1--> 右键单击​​ Java 项目,选择“属性”选项

步骤 2--> 从左侧菜单中选择“Java Build Path”,确保您在“Source”选项卡上,单击“Add Folder” 从左侧菜单中选择“Java Build Path”,确保您在“Source”选项卡上,单击“Add Folder”

步骤 3--> 单击窗口底部的“创建新文件夹...”选项单击窗口底部可用的选项“创建新文件夹...”

步骤 4--> 输入新文件夹的名称为“资源”,然后单击“完成” 输入新文件夹的名称为“资源”,然后单击“完成”

Step 5--> 现在你可以在你的java项目下看到新创建的文件夹“resources”,点击“Ok”,再次点击“Ok”
现在你可以在你的java项目下看到新创建的文件夹“resources”,点击“Ok”,再次点击“Ok”

最后一步 --> 现在您应该可以在您的 java 项目下看到新文件夹“resources”
现在您应该可以在您的 java 项目下看到新文件夹“resources”

添加资源文件夹后试试这个:

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

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

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

右键单击项目>>单击属性>>Java构建路径>>源>>添加文件夹

如果您有多个子项目,那么您需要将资源文件夹添加到每个项目的运行配置类路径中,如下所示:

类路径

确保新路径位于条目的顶部,然后运行时将首先检查任何资源的路径(在检查子路径之前)

尝试提供阅读图像的完整路径。

示例图像 = ImageIO.read(new File("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);

如果目标是创建一个与src/main/java并行的资源文件夹,请执行以下操作:

Right Click on your project > New > Source Folder
Provide Folder Name as src/main/resources
Finish

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM