Java 将JPanel添加到JFrame';行不通
如何将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
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。