4

在 NetBeans 中,GUI Builder 生成的代码对您来说是编辑器的禁区。

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

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

谢谢。

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

4

10 回答 10

4

如果您在记事本或写字板中打开 .java 文件,您会发现成对的注释说

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

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

  1. 您将能够在 NetBeans 中的文件中的任何位置进行编辑。
  2. NetBeans 将无法从 GUI 编辑器重新生成文件。

所以它可以做到,但除非你真的认真,否则不要这样做


编辑:“注意:我不想失去代码生成。” 好的,让我们看看这里。

  1. 您想更改生成的内容。
  2. 您不想丢失代码生成。
  3. 您不想使用 NetBeans 提供的工具来添加自定义代码。

听起来你是在自找麻烦。:D

于 2009-01-16T15:40:17.763 回答
4

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

  • 无法保证您所做的更改将在 Netbeans UI 编辑器中起作用(并且不会破坏任何内容)
  • 下次您在 Netbeans 中编辑该文件时,它将重新生成。

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

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

于 2009-03-10T03:58:44.887 回答
2

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

于 2012-03-16T00:20:25.163 回答
1

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

于 2014-01-16T20:11:24.480 回答
1

您也可以尝试将.form文件移入

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

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

于 2014-09-03T03:04:31.500 回答
0

你能继承这个类并重新定义这段代码所在的方法吗?当然,当您对 GUI 进行更改时,您必须随着时间的推移维护该方法。

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

于 2009-01-16T16:08:41.717 回答
0

如果您使用APT,您可以在编译时重写源代码。这样您就可以覆盖当前存在的代码。您可以将新代码与注释一起保存在同一个 Java 文件中以解释发生了什么。本教程使入门变得非常容易。复制该代码,让它工作,然后根据自己的喜好进行调整。要找出代码中带注释的方法在声明中调用 getPosition() 的位置。

于 2009-03-16T07:40:41.587 回答
0

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

于 2013-04-30T10:16:33.287 回答
0

非常简单……糟糕的 UTF-8 并没有让我编译一个 JasperReport(一切都由 GUI 完成)。所以,我需要将项目更改为 iso-8859-1。结果?项目搞砸了,一些需要纠正的地方在代码的阻塞部分。所以,我真的需要编辑那些自动生成的部分。当它们重新生成时,它们会很好,因为该项目现在是 iso-8859-1。

于 2014-05-14T09:52:16.767 回答
0

步骤 # 1 在 NetBeans 中关闭项目

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

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

于 2017-01-14T18:05:46.757 回答