从不同包中的类加载包内的Java Image [英] Load Java Image inside package from a class in a different package

查看:107
本文介绍了从不同包中的类加载包内的Java Image的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为MyProject的Java项目。我有一些不同的包(为了这个问题保持名称简单),如下所示:

I have a Java project called MyProject. I have a few different packages (keeping names simple for the purpose of this question), as follows:

src/PackageA
src/PackageA/PackageAa
src/PackageA/PackageAa/PackageAaa
src/PackageB
src/PackageB/PackageBa
src/PackageB/PackageBa/PackageBaa

我有一个班级

src/PackageA/PackageAa/PackageAaa/MyJavaFile.java

我有一张图片

src/PackageB/PackageBa/PackageBaa/MyImage.png

MyJavaFile.java 内,我想声明一个 MyImage.png的图像对象

Image img = new Image(....what goes here?...)

我该怎么做?

推荐答案

您可以调用 Class.getResource 并指定以 / 开头的路径,或者 ClassLoader.getResource方法而不是打扰 /

You could either call Class.getResource and specify a path starting with /, or ClassLoader.getResource and not bother with the /:

URL resource = MyJavaFile.class
      .getResource("/PackageB/PackageBa/PackageBaa/MyImage.png");

或:

URL resource = MyJavaFile.class.getClassLoader()
      .getResource("PackageB/PackageBa/PackageBaa/MyImage.png");

基本上 Class.getResource 将允许你指定相对于该类的资源,但我不认为它允许您使用..等进行目录导航。

Basically Class.getResource will allow you to specify a resource relative to the class, but I don't think it allows you to use ".." etc for directory navigation.

当然,如果你知道正确包中的类,你可以使用:

Of course, if you know of a class in the right package, you can just use:

URL resource = SomeClassInPackageBaa.class.getResource("MyImage.png");

(我假设您可以传递 URL 到有问题的 Image 构造函数。 Class getResourceAsStream c $ c>和 ClassLoader 。)

(I'm assuming you can pass a URL to the Image constructor in question. There's also getResourceAsStream on both Class and ClassLoader.)

这篇关于从不同包中的类加载包内的Java Image的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆