如何在NetBeans上的Java中修改/添加代码到initComponents()
方法?当我尝试添加任何代码行时,这个区域看起来像只读,并以灰色突出显示!这可能是为了安全,但我想有一种方法可以禁用它。
答案 0 :(得分:14)
是的,initComponents方法是只读的,以保持对IDE的完全控制。您可以在initComponents之后立即在构造函数中添加您的。
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
myInitComponents();
}
public void myInitComponents() {
}
答案 1 :(得分:11)
在GUI编辑器中创建UI时,IDE将重新生成initComponents()方法。该方法被“防护”以防止这种重新生成覆盖用户编写的代码。
有两种方法可以间接地为此方法添加代码:
将新组件拖放到设计上 窗口的编辑'画布'。
输入代码作为其中一个的一部分 以下代码属性: 创作前代码,创作后 代码,预启动代码,启动后代码, 监听后代码,人口前 代码,人口后代码和 After-All-Set Code。
还有一些其他代码属性不会改变initComponents()方法......但可能非常有用:预先声明代码和声明后代码。 alt text http://blogs.sun.com/vkraemer/resource/code-properties.png 注意:这些属性的编辑器并不“丰富”,因此我建议您在initComponents()中调用的“常规编辑器”中创建方法。
您可以通过定位或更改“基本面板”或控件的“常规”属性来修改initComponents()方法中的代码。
答案 2 :(得分:4)
据推测,您正在使用Matisse GUI工具编写应用程序。
马蒂斯生成不可编辑的代码块。这是Matisse所要求的,因此该工具与代码库保持同步。
Matisse提供了许多选项,允许在代码块之前,之后或之内插入自定义代码,例如initComponents()
。
见下图:
这显示了jPanel的属性选项卡和一些代码插入选项。
答案 3 :(得分:2)
要允许更改源代码和Matisse GUI编辑器,NetBeans会阻止编辑所谓的“保护块”。 虽然您可以想象IDE能够解释您编写的几乎任何类型的GUI代码,但实际上,IDE开发人员更容易将自动生成的GUI代码封装在单个方法(initComponents())中并保留其余部分供您编辑。
如果您确定自己知道自己在做什么,可以从外部编辑器轻松编辑.java文件,但是:
答案 4 :(得分:2)
如果右键单击Design View
中的组件,然后单击“Customize Code
”选项,则可以修改InitComponent
代码中的代码。可以自定义几行显式代码。
答案 5 :(得分:1)
我通过反复试验发现,在用户看到面板之前需要进行的初始化应该添加为“预启动代码”。在我的情况下,我需要填充一个下拉框(在AWT中称为“选择”)。关于使用马蒂斯,似乎很少有详细的文档。所以,我希望这会有助于其他人。
答案 6 :(得分:0)
选择所有代码并在外部编辑器中复制,如gedit或记事本。
然后删除你的jframe文件。
在同一个包中使用相同名称在netbeans中创建一个新的java类。
从编辑器文件中复制所有内容并将其粘贴到新创建的java类中。
答案 7 :(得分:0)