如何使用NetBeans在Java中修改/添加代码到initComponents()方法?

如何在NetBeans上的Java中修改/添加代码到initComponents()方法? 当我尝试添加任何代码行时,这个区域看起来像只读,并以灰色突出显示! 这可能是为了安全,但我想有一种方法可以禁用它。

在GUI编辑器中创建UI时,IDE将重新生成initComponents()方法。 该方法被“防护”以防止这种再生覆盖用户编写的代码。

有两种方法可以间接地为此方法添加代码:

  1. 将新组件拖放到窗口的设计编辑器“canvas”上。

  2. 输入代码作为以下代码属性之一的一部分:创建前代码,创建后代码,预启动代码,启动后代码,监听后代码,预填充代码,人口后代码和后全部 – 设置代码。

    还有一些其他代码属性不会改变initComponents()方法……但可能非常有用:预先声明代码和声明后代码。 alt text http://blogs.sun.com/vkraemer/resource/code-properties.png注意:这些属性的编辑器并不“丰富”,所以我建议你在“常规编辑器”中创建方法在initComponents()中。

您可以通过定位或更改“基本面板”或控件的“常规”属性来修改initComponents()方法中的代码。

是的,initComponents方法是只读的,以保持对IDE的完全控制。 您可以在initComponents之后立即在构造函数中添加您的。

 public class NewJFrame extends javax.swing.JFrame { /** Creates new form NewJFrame */ public NewJFrame() { initComponents(); myInitComponents(); } public void myInitComponents() { } 

据推测,您正在使用Matisse GUI工具编写应用程序。

马蒂斯生成不可编辑的代码块。 这是Matisse所要求的,因此该工具与代码库保持同步。

Matisse提供了许多选项,允许在initComponents()之类的代码块之前,之后或之内插入自定义代码。

见下图:

代码插入

这显示了jPanel的属性选项卡和一些代码插入选项。

为了允许更改源代码和Matisse GUI编辑器,NetBeans阻止编辑所谓的“保护块”。 虽然您可以想象IDE能够解释您编写的几乎任何类型的GUI代码,但实际上,IDE开发人员更容易将自动生成的GUI代码封装在单个方法(initComponents())中并保留其余部分供您编辑。

如果您确定自己知道自己在做什么,则可以从外部编辑器轻松编辑.java文件,但是:

  1. 一定要保存当前版本
  2. 完成后,通过在NetBeans可视化编辑器中打开类来检查您的更改是否已破坏

如果右键单击Design View的组件,然后单击“ Customize Code ”选项,则可以修改InitComponent代码中的代码。 可以自定义几行显式代码。

我通过反复试验发现,在用户看到面板之前需要进行的初始化应该作为“预启动代码”添加。 在我的情况下,我需要填充一个下拉框(在AWT中称为“选择”)。 关于使用马蒂斯,似乎很少有详细的文档。 所以,我希望这会有助于其他人。

选择所有代码并在外部编辑器中复制,如gedit或notepad。

然后删除您的jframe文件。

在netbeans中使用相同名称在同一个包中创建一个新的java类。

复制编辑器文件中的所有内容并将其粘贴到新创建的java类中。

  1. 关闭Netbeans
  2. 转到包含表单文件的文件夹路径
  3. 使用扩展名“.form”和“.java”备份2个文件
  4. 在记事本编辑器中编辑扩展名为“.form”和“.java”的2个文件。 例如,如果您的表单名称是“myForm”,则必须在文件夹中包含文件“myForm.form”和“myForm.java”。
  5. 第一个文件“.form”是xml文件,第二个“.java”是代码java文件
  6. 仔细编辑两个文件中的代码保存更改并打开NETBEANS。 而已!