Netbeans在TopComponent中重新生成损坏的代码。我该如何解决?

时间:2014-03-17 17:47:31

标签: java netbeans compiler-generated

我已经处理了一个多星期了,现在它开始阻碍我的工作效率。

我有一个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>

也许删除这个可以解决问题,但我不确定,并且真的不想冒险破坏这个项目。

1 个答案:

答案 0 :(得分:1)

  1. 尝试清理和重建项目(默认情况下为Shift + F11)。如果这不会重新生成表单,则错误仍然存​​在:
  2. 修改表单:用您的代码替换上面标记的value属性中的代码。
  3. 对于错误本身,您应该只在生成的部分中放置生成的代码。您始终可以在构造函数中的initComponents()方法之后执行post-init。这样可以避免GUI Editor中可能出现的错误,并简化对代码的控制。