我已经处理这个问题一个多星期了,现在它开始影响我的工作效率。
我有一个应用自定义文档过滤器的 JTextBox。要添加它,我右键单击控件,进入自定义代码,并在所有内容下方添加此行:
((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());
现在,这是一个复制粘贴工作(因为我在其他地方使用过)。我想将过滤器设置为的字段称为TextField
. 不小心点了确定,编译了,就炸了。呃,我明白我的错误了。我修复它,重新编译,我仍然得到错误。现在我的代码有这个:
((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 版本 7.3.1。
更新:我窥探了一下,在我的 Topcomponent 的 *.form 文件中找到了这个:
<AuxValues>
<AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());"/>
</AuxValues>
也许删除它可以解决问题,但我不确定,并且真的不想冒险破坏这个项目。