这是我在本网站上的第一个问题,但是我在一个月前左右检查了这个网站,这对我帮助很大。我对任何类型的开发都很陌生,我从Java开始。 2个月前开始所以请在答案中特别提到,因为我是新手。非常感谢你!
我实际上遇到的问题是我一直在为我的女朋友开发一个应用程序,该应用程序包含一个包含144个案例的案例,其中每个案例都有一个" ImageIcon"设置为标签,并且有一个文本字段,你必须写出它是什么样的植物(它是植物检查)。 1个案例看起来完全像这样:
ImageIcon img = new ImageIcon("images\\Tuber melanosporum.png");
ImageIcon icon = new ImageIcon(img.getImage().getScaledInstance(jLabel2.getWidth(), jLabel2.getHeight(), Image.SCALE_DEFAULT));
jLabel2.setIcon(icon);
solucio = "Tuber melanosporum";
break;
她必须写" Tuber melanosporum"成功。一切正常,我有一个从1到144的随机数使应用程序发送随机图像,每个图像都带有"解决方案"。
问题1 :(已解决)当我尝试编译和分发它时出现问题。编译后,我甚至无法执行我的.jar。我一直在这里寻找有关我的问题的问题,我被告知要检查Java是否是打开.jar的默认程序,我运行了一个名为" Jarfix"等的程序。但是当我双击它,它忽略了我。从我的PC执行它的唯一方法是在控制台上运行cmd命令。当我尝试双击现在,经过大量的更改后,它说无法找到主类(我的应用程序,还没有主要类,它只是一个jForm,我有另一个与mainclass和jForm,但我有同样的错误)。我已经看到了有关清单的答案,但似乎对我不起作用......我试图在项目属性/运行中将jForm设置为主类。
我在.jar中的清单看起来像这样:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: visuframe.visuframe //My only class (jFrame) is visuframe, inside package visuframe so I guess this is correct
解决方案:经过多次JRE重新安装后,我决定重新安装所有JDK(其中包括JRE和Netbeans),然后重新安装后,它就可以了。我正在运行Netbeans 7.2和JDK7以及JRE7更新51.现在我正在运行Netbeans 8.0和JDK8以及JRE8更新5,现在它似乎正常运行。我想我必须至少告诉人们下载JRE8,如果他们想看到该应用程序的话。
问题2 :(已解决)我不知道如何将图像包含在我的jar中并让它们工作......我的意思是......它们位于一个名为images的文件夹中进入我的项目,每当我从NetBeans运行应用程序时,它工作得很顺利,但是当我把它编译为.jar时(我知道它们在内部正确编译,因为.jar大小为20MB +,当我解压缩它们时它们就在那里。)它们在运行时不会显示在应用程序上(从cmd命令行开始,因为我在问题1中说过,因为我得到了那个主类错误,所以我无法双击它)。
解决方案:正如有些人所说,我需要的代码是:
java.net.URL imgUrl = getClass().getResource("/resources/images/Tuber melanosporum.jpg");
ImageIcon icon = new ImageIcon(imgUrl);
ImageIcon icono = new ImageIcon(icon.getImage().getScaledInstance(jLabel2.getWidth(), jLabel2.getHeight(), Image.SCALE_DEFAULT));
jLabel2.setIcon(icono2);
问题是没有人告诉我,我需要创建一个"资源" " src"内的文件夹项目文件夹并通过右键单击项目/添加/其他/文件夹将其加载到项目中。我所拥有的是"图像"主项目文件夹中的文件夹。请试着说明一点,因为正如我所说,我对整个场景都是超级新手。 (仍有问题1)
编辑:无论如何,感谢所有答案,我不知道如何提出您的意见或如何将其标记为答案:/。