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

Dav*_*ell 2 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());
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图使用它:

    calculator2 test = new calculator2();
    JPanel panel3 = new JPanel(new BorderLayout());
    panel3.add(test, BorderLayout.SOUTH);
Run Code Online (Sandbox Code Playgroud)

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

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

Sed*_*nus 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());
 }
}
Run Code Online (Sandbox Code Playgroud)

  • 此外,您对panel3的操作并不明显,请确保将其添加到可移动的容器中 (2认同)