2013-02-23 33 views
0

我正在创建一个目前有3个类的程序。除了另外两个JPanel类之外,这些还包括JFrame类。有谁知道如何在一个JPanel类中创建一个JButton,并删除该特定的JPanel并将JFrame添加到新JPanel(来自另一个类)?有一个JButton打开一个新的JPanel

例如,假设JFrame类称为框架,并且两个JPanel类称为panel1和panel2。如果在面板1中单击一个按钮,如何告诉该框架以移除panel1并添加panel2?

+5

使用'CardLayout'来更改面板,如[本答案](http://stackoverflow.com/a/5786005/418556)所示。 – 2013-02-23 18:16:22

+4

对于[示例](http://stackoverflow.com/a/5655843/230513)。 – trashgod 2013-02-23 18:17:33

回答

1

那么它取决于你的意思与“删除”的话。

一个好方法是使用使用hidemode属性的MigLayout。表单的初始状态将包含JFrame中的两个面板,但第二个面板将不可见。

当您按下第一个JPanel的按钮时,它会将此面板的可见性设置为false,并将第二个面板的可见性设置为true。另一方面,如果要从框架中完全移除第一个面板,请使用panel.setName(panelsName)方法为其指定名称,然后检索JFrame的每个子组件,然后将它们放到相应的组件中在一个集合中。

然后遍历这个集合,并检查每个组件的名称。

如果component.getName()。equals(panelsName),那么使用frame.remove(component)方法来摆脱它。之后,您可能需要在框架中调用验证和重绘,但我不确定是否有必要。试试吧)

相关问题