将面板的实例从另一个类添加到父面板

时间:2012-08-29 20:00:57

标签: java swing awt jpanel

这门课的建设有问题吗?我正在尝试将其实例添加到另一个类的JPanel中:

public class calculator2 extends JPanel {
     public calculator2() {
         JPanel x = new JPanel();
         x.setLayout(new GridLayout(0,5));

         x.add(new JLabel());
         x.add(new JButton("<<"));
         x.add(new JLabel());
         x.add(new JButton(">>"));
         x.add(new JLabel());
     }
}

这就是我尝试使用它:

    calculator2 test = new calculator2();
    JPanel panel3 = new JPanel(new BorderLayout());
    panel3.add(test, BorderLayout.SOUTH);

我没有得到任何类型的运行时错误,它只是不显示。当我将来自calculator2类的代码放在我所使用的同一个类中时,它会出现在代码的第二部分中。谢谢你的考虑。

这实际上只是一个例子,我有一个完整的类,其中包含大约25个使用actionlisteners等的组件,并希望使用上述方法将其添加到面板中。

1 个答案:

答案 0 :(得分:5)

在这里,您只需创建面板而无需将其添加到任何可见的位置。尝试使用从JPanel继承的parents方法,而不是在构造函数中创建另一个JPanel的新实例。

这将删除名为x的实例。

public class calculator2 extends JPanel {
  public calculator2() {
     super();
     setLayout(new GridLayout(0,5));

     add(new JLabel());
     add(new JButton("<<"));
     add(new JLabel());
     add(new JButton(">>"));
     add(new JLabel());
 }
}