java swing没有生成代码

时间:2016-06-08 17:44:15

标签: java swing netbeans-8

我正在使用Netbeans 8.0.2我想知道是否有任何方法可以创建没有生成代码的java Jframe,或者是否有任何方法可以编辑该代码

所以要摆脱这个(这是自动生成的代码):

   // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );
}// </editor-fold> 

3 个答案:

答案 0 :(得分:5)

  

我想知道是否有任何方法可以在没有生成代码的情况下创建java Jframe

是:

JFrame myFrame = new JFrame("My Frame"):

现在我们已经完成了 easy 部分。

当您不使用NetBeans拖放式GUI构建器时,更难的部分可能是学习如何在GUI中创建和放置组件,并且要成功完成此操作,您需要了解所有内容关于布局经理。请转到教程:Laying out Components within a Container

其他关键位:

  • 尽可能避免使用GroupLayout,因为这并不是用来手工创建代码,而是用于创建IDE代码。这并不是说它不能使用,但它既不简单也不直观,当然不应该是第一个使用的布局管理器。
  • 请记住,嵌套JPanel很容易,每个人都可以使用自己的布局管理器。这使得使用简单的布局管理器轻松创建复杂的GUI。
  • 最好将GUI创建用于创建JPanel,而不是扩展JFrame。 JPanel可以放入JFrames,JDialogs,与CardLayout交换,进入JOptionPanes,放入其他JFrames。最好在需要时根据需要创建JFrame,并将JPanel放入其中。

答案 1 :(得分:2)

嗯,您可以通过自己的方法添加组件而不是initComponents()

public class Test extends JFrame
{
    public Test()
    {
        initComponents();
        doMyCustomComponents();
    }

    public void doMyCustomComponents()
    {
        JFrame frame = new JFrame("Frame");
        //do whatever you need to.
        ...
        ...
        ...

    }
}

请注意。这要复杂得多,因为你基本上是在编写设计师&#34;代码你自己。您需要布局UI并管理initComponents为您做的所有事情。

答案 2 :(得分:0)

自动生成的代码由Netbeans创建,有关只读代码段的信息保存在java文件中。

您无法看到这些评论,因为它们会自动从可视源中删除,以供Netbeans自动呈现。

您可以点击工具&gt;修改自动生成。模板&gt; Swing GUI Forms,然后右键单击要修改的那个。

请注意,这适用于所有未来的自动生成,而不是当前生成的表单。

要删除或修改一个文件的只读部分,您需要在Netbeans之外打开该文件并删除:

//GEN-BEGIN:initComponents

//GEN-END:initComponents

来自您要删除只读属性的部分。然后,您可以修改或删除它们。