Java 如何将JPanel类添加到netbeans中的JFrame表单类中?

Java 如何将JPanel类添加到netbeans中的JFrame表单类中?,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我在netbeans中创建了两个类;其中一个是JPanel表单,另一个是JFrame表单; 如何将JPanel类添加到JFrame表单类中? 我在JFrame表单类的构造函数中编写了这段代码,但它不起作用 public JFrameClass() { initComponents(); this.getContentPane().add(jpc = new JPanelClass()); jpc.setVisible(true);

我在netbeans中创建了两个类;其中一个是JPanel表单,另一个是JFrame表单; 如何将JPanel类添加到JFrame表单类中? 我在JFrame表单类的构造函数中编写了这段代码,但它不起作用

public JFrameClass() {
        initComponents();
        this.getContentPane().add(jpc = new JPanelClass());
        jpc.setVisible(true);
        this.pack();
        this.setVisible(true);

    }
如何将JPanel类添加到netbeans中的JFrame表单类中

JFrame
类中,只需设置
JPanel
并将其添加到
容器中即可

JPanel panel = new JPanelClass();
controls.add(panel);
注意:您应该有一些名为
createAndAddComponents()
的私有void方法,并在构造函数中调用它

public JFrameClass() {
   ...
   createAndAddCompontents();
}
然后,当您想要执行应用程序时,在main()方法中,您应该像这样调用它:

SwingUtilities.invokeLater(new Runnable() {
   @Override
   public void run() {
      YouJFrameClass initAndShowComponents = new YouJFrameClass();
      initAndShowComponents.setVisible(true);
}
    }); 

您需要确保从
JFrameClass
所在的位置可以看到
JPanelClass
。 然后执行以下操作:

JPanelClass jpc = new JPanelClass()
this.getContentPane().add(jpc);
另外,不需要调用
jpc.setVisible(true)

生成的代码应为:

public JFrameClass() {
        initComponents();
        JPanelClass jpc = new JPanelClass()
        getContentPane().add(jpc);
        pack();
        setVisible(true);
}

设置JPanel的边界,以便容器知道在哪里绘制它

       public void run() {
            NewJFrame frame = new NewJFrame();
            NewJPanel panel = new NewJPanel();

            panel.setBounds(0, 0, 200, 200);
            frame.add(panel);
            frame.setVisible(true);
        }

“没用。”你以为会发生什么?发生了什么事?为了更快地获得更好的帮助,请发布一篇文章。首先尝试一些基本的java教程<代码>this.getContentPane().add(jpc=newJPanelClass())我这样做了:public JFrameClass(){initComponents();this.add(jpc=new JPanelClass());}但是什么也没发生:调用
setBounds
以后会导致问题。使用布局。将内容放入面板,使其具有“自然非零大小”,或者如果它是“纯渲染”组件,则设置或覆盖首选大小。@Blueferi回答选择不当(您尚未接受它)。接下来的10个问题将围绕“如何修复组件布局?”@Andrew Thompson我得到了你的建议,并使用了布局;),但一开始,这个答案帮助我找到解决问题的方法:)