在NetBeans 6.5中绕过锁定生成的代码?

时间:2009-01-16 15:25:03

标签: netbeans netbeans6.5

在NetBeans中,GUI Builder会从编辑器生成不受限制的代码。

我知道您可以切换到设计模式并指定自定义代码,然后以间接方式进入编辑,但是无法编辑光标中2行的文本会很痛苦。

我可以允许在这些地区内进行编辑......我保证会小心:)

感谢。

注意:我不想丢失代码生成

10 个答案:

答案 0 :(得分:4)

如果您在记事本或写字板中打开.java文件,您会发现一对评论

// GEN-BEGIN: <name of section>
...
// GEN-END: <name of section>

删除这些评论,会发生两件事。

  1. 您将能够在NetBeans中的任何位置编辑文件。
  2. NetBeans无法从GUI编辑器重新生成文件。
  3. 所以可以这样做,但不要这样做,除非你的意思是


    编辑:“注意:我不想丢失代码生成。”好的,我们来看看。

    1. 您想要更改生成的内容。
    2. 您不想丢失代码。
    3. 您不希望使用NetBeans提供的用于添加自定义代码的工具。
    4. 这听起来像是在祝自己麻烦。 :d

答案 1 :(得分:4)

如果在外部编辑器中打开它,有两种可能性:

  • 无法保证您所做的更改在Netbeans UI编辑器中有效(而不是破坏任何内容)
  • 下次在Netbeans中编辑文件时,它将重新生成。

无论哪种方式,可能不是你想要的。最好的办法可能是在gui编辑器中完成整个设计,当你对它感到满意时,删除评论并继续。

[讽刺] 使用拖放gui编辑器,您还可以手动更改什么? [/ sarcasm];)

答案 2 :(得分:2)

我遇到了同样的问题。我使用自己的面板类扩展了JPanel,但我无法将其与其他UI一起打包。首先,我在网上搜索,然后找到了你的问题。我无法找到这个问题的优雅解决方案。 因此,我决定创建另一个java类并将NetBeans创建的代码复制到其中。它就像一个魅力。 我同意,如果我们能修改像.NET这样的现有代码,那就太好了。

答案 3 :(得分:1)

我复制initcomponents()方法,创建我自己的方法newInitComponents()粘贴生成的代码,并覆盖在分发代码之前需要覆盖的内容。这样,当在编辑器中进行更改时,您仍然可以将代码粘贴到新方法中。您可以保留功能,而无需在必要时覆盖您。只需在构造函数中调用newInitComponents()而不是原始函数。这不是最有效的做事方式,但它可以做你想要的。

答案 4 :(得分:1)

您也可以尝试移动

中的.form文件

(项目名称)\ src \(JFrame / JPanel的名称).form

NetBeans现在将其视为.java文件 如果您没有编辑GUI编辑器所需的任何内容,则可以将.form文件移回src文件夹。

答案 5 :(得分:0)

您可以继承该类并重新定义此代码所在的方法吗?当然,当您对GUI进行更改时,您将不得不随着时间的推移维护该方法。

您也可以查看AspectJ。它将在构建时修改字节代码并进行您定义的更改。不确定这是否足以让您控制要更改的代码。

答案 6 :(得分:0)

如果使用APT,则可以在编译时重写源代码。这样您就可以覆盖当前的代码。您可以将新代码与注释一起保存在同一个Java文件中,以解释发生了什么。 This tutorial让你很容易上手。复制该代码,让它工作,然后根据自己的喜好调整它。要找出代码中的注释方法,请在声明中调用getPosition()。

答案 7 :(得分:0)

转到设计页面并选择任一字段。右键单击任何选定字段并选择Customizer Code,在Customizer Code中将所有默认代码更改为自定义创建。现在您可以根据需要编辑设计代码......

答案 8 :(得分:0)

非常简单......糟糕的UTF-8不让我编译一个JasperReport(GUI完成所有操作)。所以,我需要将Project更改为iso-8859-1。结果?该项目搞砸了,一些要纠正的事情是在代码的被阻止的部分。所以,我真的需要编辑那些自动生成的部件。当它们被重新生成时,它们会很好,因为该项目现在是iso-8859-1。

答案 9 :(得分:0)

步骤#1在NetBeans中关闭项目

步骤#2从项目的源目录中删除.form文件

重新打开该项目,现在可以编辑了!