我已经处理这个问题一个多星期了,现在它开始影响我的工作效率了。
我有一个JTextBox,我正在应用自定义文档过滤器。为了添加这些,我右键单击控件,进入自定义代码,并在所有内容下面添加这一行:
((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());
现在,这是一个复制粘贴工作(因为我在其他地方使用了这个)。我想设置过滤器的字段叫做TextField
。错误地,我点击了OK,编译,然后它爆炸了。我知道我错了。我修复它,重新编译,但我仍然得到错误。现在我的代码是这样的:
((javax.swing.text.AbstractDocument)TextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());
((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());
当我进入自定义代码,它只显示正确的(顶部)那个。我关闭Netbeans,用notepad++编辑文件,删除有问题的行,然后重新启动Netbeans。现在它编译了,我运行它,测试,然后当我返回时,代码重新生成了错误行。
我吹出Netbeans的缓存,这没有做任何事情,所以我真的在如何解决这个问题上的损失。什么人吗?
Netbeans Version 7.3.1
更新:我窥探了一下,发现这在我的Topcomponent的*。形成文件:
<AuxValues>
<AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());"/>
</AuxValues>
也许删除这个可以解决这个问题,但我不确定,真的不想冒险破坏这个项目。
- 尝试清理和重建您的项目(Shift + F11默认)。如果这不能重新生成表单并且错误仍然存在:
- 编辑表单:用你的代码替换上面标签的
value
属性中的代码。
initComponents()
方法之后执行post-init。这避免了GUI编辑器中可能出现的错误,并为您简化了对代码的控制。