我已经处理了一个多星期了,现在它开始阻碍我的工作效率。
我有一个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>
也许删除这个可以解决问题,但我不确定,并且真的不想冒险破坏这个项目。
答案 0 :(得分:1)
value
属性中的代码。对于错误本身,您应该只在生成的部分中放置生成的代码。您始终可以在构造函数中的initComponents()
方法之后执行post-init。这样可以避免GUI Editor中可能出现的错误,并简化对代码的控制。