Java 将JPanel添加到JFrame';行不通

Java 将JPanel添加到JFrame';行不通,java,swing,netbeans,Java,Swing,Netbeans,如何将JPanel添加到其他类中的JFrame??我试过使用这段代码,但在编译它时,它在MyFrame.java(标签“Hello World”)中没有显示任何组件。我的代码怎么了 (MainFrame.java中的按钮称为MyFrame.java) 代码如下: MyPanel.java(包含按钮和标签) MyFrame.java public class MyFrame extends javax.swing.JFrame { MyPanel myPanel = new MyPane

如何将JPanel添加到其他类中的JFrame??我试过使用这段代码,但在编译它时,它在
MyFrame.java
(标签“Hello World”)中没有显示任何组件。我的代码怎么了

(MainFrame.java中的按钮称为
MyFrame.java

代码如下:

MyPanel.java(包含按钮和标签)

MyFrame.java

public class MyFrame extends javax.swing.JFrame {

    MyPanel myPanel = new MyPanel();

    public MyFrame() {
        initComponents();
        this.add(myPanel);
    }
}
public class MainFrame extends javax.swing.JFrame {

    public MainFrame() {
        initComponents();
    }

    private void btnCallFrameActionPerformed(java.awt.event.ActionEvent evt) {                                         
        new MyFrame().setVisible(true);
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }
}       
MainFrame.java

public class MyFrame extends javax.swing.JFrame {

    MyPanel myPanel = new MyPanel();

    public MyFrame() {
        initComponents();
        this.add(myPanel);
    }
}
public class MainFrame extends javax.swing.JFrame {

    public MainFrame() {
        initComponents();
    }

    private void btnCallFrameActionPerformed(java.awt.event.ActionEvent evt) {                                         
        new MyFrame().setVisible(true);
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }
}       

我不知道您在initComponents方法中做了什么。所以我对你的代码做了一点修改

public class MyPanel extends javax.swing.JPanel {

    public MyPanel() {
        initComponents();
        //I don't know what you did in initComponents(); so I ve changed the layout to be sure that you didn't use null layout. 
        this.setLayout(new BorderLayout());

        JLabel myLabel = new JLabel();
        myLabel.setText("Hello World");

       //adding the label in MyPanel 
       this.add(myLabel);
    }
}

public class MyFrame extends javax.swing.JFrame {

    MyPanel myPanel = new MyPanel();

    public MyFrame() {
        initComponents();
        // added because of the former reason
        this.setLayout(new BorderLayout());
        this.add(myPanel);
    }
}

我希望您确定可以使用一些按钮调用btnCallFrameActionPerformed方法

为了更快地获得更好的帮助,请发布一个or。