这门课的建设有问题吗?我正在尝试将其实例添加到另一个类的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等的组件,并希望使用上述方法将其添加到面板中。
答案 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());
}
}