Sho*_*eNN 31 java resources netbeans
我在NetBeans 7.0中有一个Java项目.
我想动态地将一些图像添加到某个标签.图像将根据程序的状态而有所不同.
我把一个这样的图像'filling.jpg'放在我项目的'resources'文件夹中.
我想正确地访问此文件(不是通过绝对路径或相对路径,因为这会在构建jar文件时导致问题).
所以我找到了这个方法:
ImageIcon fillingIcon = new ImageIcon(getClass().getClassLoader().getResource("filling.jpg"));
labelFontFilling.setIcon(fillingIcon);
Run Code Online (Sandbox Code Playgroud)
它一直给我java.lang.NullPointerException.但我确信有那个图像,因为我可以从NetBeans Properties菜单中为该标签分配图像(但我不想这样,我想通过Java代码添加图像).
我做错了什么,我怎样才能正确地获得该图像?
小智 45
使用netBeans IDE 7.2,这很痛苦.
将资源文件夹添加到src文件夹:
在clean/build之后,这个结构被传播到Build文件夹中:
要访问资源:
dlabel = new JLabel(new ImageIcon(getClass().getClassLoader().getResource("resources/images/logo.png")));
Run Code Online (Sandbox Code Playgroud)
和:
if (common.readFile(getClass().getResourceAsStream("/resources/allwise.ini"), buf).equals("OK")) {
Run Code Online (Sandbox Code Playgroud)
为我工作.注意,在一种情况下,存在前导"/"而在另一种情况下没有.因此,资源路径的根目录是构建文件夹中的" classes "文件夹.
双击dist文件夹中的可执行jar文件.资源的路径仍然有效.
Mat*_*zke 22
我有一个稍微不同的方法,可能对某些人有用/更有益.
在主项目文件夹下,创建资源文件夹.您的文件夹结构应如下所示.
转到项目的属性.您可以通过在"项目"选项卡窗口中右键单击项目并在下拉菜单中选择"属性"来执行此操作.
在左侧的类别下,选择"来源".
在右侧的源包文件夹中,使用"添加文件夹"按钮添加资源文件夹.单击"确定"后,您应该在项目下看到"资源"文件夹.
您现在应该能够使用此行或类似方法提取资源:
MyClass.class.getResource("/main.jpg");
Run Code Online (Sandbox Code Playgroud)
如果要在resources文件夹下创建名为Images的包,则可以检索如下所示的资源:
MyClass.class.getResource("/Images/main.jpg");
Run Code Online (Sandbox Code Playgroud)
Sho*_*eNN 20
谢谢,Valter Henrique,你的小费我设法意识到,我只是输入了错误的路径到这个图像.在我尝试的一个尝试中使用
String pathToImageSortBy = "resources/testDataIcons/filling.png";
ImageIcon SortByIcon = new ImageIcon(getClass().getClassLoader().getResource(pathToImageSortBy));
Run Code Online (Sandbox Code Playgroud)
但正确的方法是在资源路径中使用我的项目名称
String pathToImageSortBy = "nameOfProject/resources/testDataIcons/filling.png";
ImageIcon SortByIcon = new ImageIcon(getClass().getClassLoader().getResource(pathToImageSortBy));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
166813 次 |
最近记录: |