[英]netbeans & java, resourceMap.getString returning null
产品版本:NetBeans IDE 6.8(Build 200912041610)Java:1.6.0_17; Java HotSpot(TM)客户端VM 14.3-b01系统:在x86上运行的Windows 7版本6.1; CP1252; en_GB(nb)
您好,这里的newbee java程序员想知道是否有人可以提供帮助,我在为netbeans中的桌面应用程序更新GUI时遇到了一些问题,以下是详细信息:
我当前的应用程序GUI效果很好,一切都正确显示。
当我通过将netbeans工具箱中的新标签添加到表单上来更新GUI并使用netbeans预览功能时,一切看起来都很棒
但是,当我运行该应用程序时,新标签消失了。
尝试了解问题,我以调试模式运行了该应用程序,并逐步执行了自动生成的initComponents()代码
通过调试,我相信问题来自以下代码行:
TEST_lbl.setText(resourceMap.getString("TEST_lbl.text")); // NOI18N
在此代码行执行之后,TEST_lbl.setText等于null。
所以当我运行该应用程序时,该标签消失了,因为它没有文本值可显示...
我在记事本(.properties文件)中打开了资源映射文件,它在所有其他工作控件的条目中包含条目“ TEST_lbl.text = jLabel1” ...
因此属性文件具有正确的值,但是resourceMap.getString没有检索到它
我可以通过将表格的“自动资源管理”选项从“所有资源”更改为“关”来解决此问题。
结果,这会将自动生成的“ setText”代码行更改为:
TEST_lbl.setText("jLabel1");
并在应用程序运行时使标签正确显示
我的第一个问题是,这是一个已知的错误吗? 还是我做了一些愚蠢的事情,不小心更改了设置软件?
如果这不是错误,如何在不更改资源管理设置的情况下解决问题?
如果这是一个错误,关闭自动资源管理的含义是什么?
感谢您的帮助-Gaz
我假设您正在NB(运行>运行主项目)下运行它?
尝试进行干净的构建(运行>清理并构建主项目)。 通常可以解决该问题。
这是构建系统的结构问题。
在干净的存储库中运行项目时(运行>运行主项目):
很好
如果您“构建”项目(运行>构建主项目):1.将.class文件写入$ project / build / classes 2.将非类文件复制到树中3.将整个内容汇总到一个jar文件。
那也很好。
但是,如果您随后进行更改并运行项目,则类文件和资源现在显示在两个位置:
就查找类文件而言,这样做行得通。 但是,资源首先在jar中找到。 因此,在运行时,您的代码会在jar中找到属性文件的过时副本,而不是文件系统中的新副本。
另外:NB在查找资源时会忽略大小写,但是Sun的JVM不会(不确定IcedTea)。 因此,如果使用了错误的情况,则NB可能会坚持认为文件存在,但JVM将无法找到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.