java - 为 Windows 7 显示 ImageIcon png 文件的正确路径是什么?

标签 java swing path embedded-resource imageicon

我想测试一个带有简单 png 图像的程序。我写了一个简短的程序来执行此操作,但我似乎无法找到正确的路径。我已经检查,再检查,再检查,并四次检查我的路径名以确保它不正确,但是无论我做什么,这个图像都不会显示。我使用了 Oracle 在 ImageIcon 文档中编写的一个简短类(creaetImageIcon())来完成此操作,但它似乎没有帮助。我将在下面发布整个程序,因为它很短。

package practiceImages;

import java.awt.BorderLayout;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ImageIconGUITest {

    public static void main(String[] args) {
        ImageIconGUITest gui = new ImageIconGUITest();
        gui.display();
    }

    private ImageIcon createImageIcon(String path, String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    private void display() {
        JFrame frame = new JFrame();
        JLabel label = new JLabel(createImageIcon(
                "Users/Evan/javaItems/Sprites_and_Other_Art/green.png", "the color green"));

        frame.add(BorderLayout.CENTER, label);
        frame.setSize(500, 500);
        frame.setVisible(true);
    }
}

最佳答案

getResource(String) 方法只会找到应用程序运行时类路径上的资源。因为这个图像看起来像一个应用程序资源(即作为应用程序的一部分由您提供)它应该放在运行时类路径中。

例如大多数 IDE 都有一个位置,您可以将资源放入项目结构中,该位置将在运行时自动包含在内。将图像移动(或复制)到该路径。

然后就是提供正确的 String 了。让我们想象一下您的项目是这样设置的:

  • 来源
    1. com
      • 我们的
        1. 应用程序.java
    2. 资源
      • 绿色.png

所以Application.javapackage com.our;中,而图片在路径resources/green.png中。

如果从 Application 访问图像,正确的路径应该是(请打鼓..)

"/resources/green.png"

注意事项

  1. 前导的/很重要。它告诉 JRE 我们要从“类路径的根”查找图像,而不是使用相对于类本身包的路径。
  2. 正确的大小写也很重要。 "/resources/green.png" 字符串不会定位名为"/resources/Green.png" “/resources/green.PNG”

eclipse 路径

  1. 右键单击src 目录,选择菜单底部的Properties
    Eclipse properties
  2. 导航(使用您在没有 Eclipse 的情况下使用的正常方式)到 Location 的目录。 Eclipse properties showing project Location
  3. 然后去父目录。
  4. 您应该会看到一个 bin 目录,其中包含类和(希望如此)图像。

关于java - 为 Windows 7 显示 ImageIcon png 文件的正确路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631636/

相关文章:

c - 编译时是否可以指定相对于用户当前目录的#include 文件路径?

php - 开发服务器和生产服务器上只有一个代码-如何处理链接?

java - 如何验证 wicket 中的数字格式 TextField?

java - Android 3.1 USB-Host - BroadcastReceiver 不接收 USB_DEVICE_ATTACHED

java - 设置 map 类型时应用程序停止

c# - 来自基本的绝对 URL + C# 中的相对 URL

java - java如何实现内部类闭包?

java - jTextfield 包含来自 jList 的输入

java - 我怎样才能跟踪这个高分

java - 在 JButton 按下时运行函数