Cod*_*Guy 14 java bufferedimage image
我有一个名为MyProject的Java项目.我有几个不同的包(为了这个问题的目的,保持名称简单),如下所示:
src/PackageA
src/PackageA/PackageAa
src/PackageA/PackageAa/PackageAaa
src/PackageB
src/PackageB/PackageBa
src/PackageB/PackageBa/PackageBaa
Run Code Online (Sandbox Code Playgroud)
我上课了
src/PackageA/PackageAa/PackageAaa/MyJavaFile.java
Run Code Online (Sandbox Code Playgroud)
我有一个图像
src/PackageB/PackageBa/PackageBaa/MyImage.png
Run Code Online (Sandbox Code Playgroud)
在里面MyJavaFile.java,我想声明一个图像对象MyImage.png
Image img = new Image(....what goes here?...)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Jon*_*eet 17
你可以调用Class.getResource并指定一个开头的路径/,或者ClassLoader.getResource不用打扰/:
URL resource = MyJavaFile.class
.getResource("/PackageB/PackageBa/PackageBaa/MyImage.png");
Run Code Online (Sandbox Code Playgroud)
要么:
URL resource = MyJavaFile.class.getClassLoader()
.getResource("PackageB/PackageBa/PackageBaa/MyImage.png");
Run Code Online (Sandbox Code Playgroud)
基本上Class.getResource允许您指定相对于类的资源,但我不认为它允许您使用".."等进行目录导航.
当然,如果您知道正确包中的类,您可以使用:
URL resource = SomeClassInPackageBaa.class.getResource("MyImage.png");
Run Code Online (Sandbox Code Playgroud)
(我假设你可以传递URL到Image有问题的构造.还有getResourceAsStream两个Class和ClassLoader.)
您可以使用相对路径,因为相对路径是项目文件夹。
ImageIcon img = new ImageIcon("src/PackageB/PackageBa/PackageBaa/MyImage.png");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41033 次 |
| 最近记录: |