如何使添加的JPanel在父JPanel内部可见?

我正在使用Netbeans设计我的UI。

我有一个MainFrame.java,其中包含两个面板。即headerPanelbodyPanel

headerPanel中,我放置了三个按钮,分别为button1button2button3

我还创建了三个扩展JPanel的单独文件,分别命名为panel1panel2panel3

然后,我将所有三个面板添加到构造函数中bodypanel中的MainFrame.java中。

bodyPanel.add(panel1);
bodyPanel.add(panel2);
bodyPanel.add(panel3);


我希望单击相应的按钮时,大型机的bodypanel中仅应显示相应的面板,即,如果单击button1,则应显示panel1

我已经在button1鼠标侦听器方法中尝试了以下代码:

bodyPanel.validate();
bodyPanel.getComponent(0).setVisible(true);


但是panel1不会出现。我这样做是因为在面板中分配的组件分配了索引。因此,我首先尝试获取组件,然后使其可见。它不起作用。

最佳答案

使用CardLayout,如here所示。

09-11 18:09