在 NetBeans 中,GUI Builder 生成的代码对您来说是编辑器的禁区。
我知道您可以切换到设计模式并指定自定义代码,然后以这种方式间接输入编辑,但是无法编辑距离光标 2 行的文本很痛苦。
我可以允许在这些区域内进行编辑吗...我保证我会小心的 :)
谢谢。
注意:我不想丢失代码生成
在 NetBeans 中,GUI Builder 生成的代码对您来说是编辑器的禁区。
我知道您可以切换到设计模式并指定自定义代码,然后以这种方式间接输入编辑,但是无法编辑距离光标 2 行的文本很痛苦。
我可以允许在这些区域内进行编辑吗...我保证我会小心的 :)
谢谢。
注意:我不想丢失代码生成
如果您在记事本或写字板中打开 .java 文件,您会发现成对的注释说
// GEN-BEGIN: <name of section>
...
// GEN-END: <name of section>
删除那些评论,会发生两件事。
所以它可以做到,但除非你真的认真,否则不要这样做。
编辑:“注意:我不想失去代码生成。” 好的,让我们看看这里。
听起来你是在自找麻烦。:D
如果在外部编辑器中打开它,有两种可能:
无论哪种方式,可能都不是您想要的。最好的办法可能是在 gui 编辑器中完成整个设计,当您对它感到满意时,删除评论并继续。
[讽刺] 使用拖放式 gui 编辑器,您还想手动更改什么?[/讽刺] ;)
我有同样的问题。我用自己的面板类扩展了 JPanel,但我无法将它与 UI 的其余部分打包在一起。首先我搜索了网络,我发现了你的问题。我无法找到这个问题的优雅解决方案。因此,我决定创建另一个 java 类并将 NetBeans 创建的代码复制到其中。它就像一个魅力。我同意,如果我们可以像在 .NET 中那样修改现有代码,那就太好了。
我复制 initcomponents() 方法,创建自己的方法 newInitComponents() 粘贴生成的代码,并在分发代码之前覆盖需要覆盖的内容。这样,当在编辑器中进行更改时,您仍然可以将代码复制粘贴到新方法中。您可以保留功能,而无需花费您在必要时覆盖的能力。只需在构造函数中调用 newInitComponents() 而不是原来的。这不是最有效的做事方式,但它会做你想做的事。
您也可以尝试将.form
文件移入
(项目名称)\src\(JFrame/JPanel 名称).form
NetBeans 现在将其视为一个.java
文件。
如果您没有编辑 GUI 编辑器所需的任何内容,您可以将.form
文件移回src
文件夹中。
你能继承这个类并重新定义这段代码所在的方法吗?当然,当您对 GUI 进行更改时,您必须随着时间的推移维护该方法。
您也许还可以查看 AspectJ。它将在构建时修改字节码并进行您定义的更改。不确定这是否能让您充分控制要更改的代码。
转到设计页面并选择任何一个字段。右键单击任何选定的字段并选择定制程序代码,在定制程序代码中将所有默认代码更改为自定义创建。现在您可以根据需要编辑您的设计代码...
非常简单……糟糕的 UTF-8 并没有让我编译一个 JasperReport(一切都由 GUI 完成)。所以,我需要将项目更改为 iso-8859-1。结果?项目搞砸了,一些需要纠正的地方在代码的阻塞部分。所以,我真的需要编辑那些自动生成的部分。当它们重新生成时,它们会很好,因为该项目现在是 iso-8859-1。
步骤 # 1 在 NetBeans 中关闭项目
步骤 # 2 从项目的源目录中删除 .form 文件
重新打开项目,它现在可以编辑了!