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

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

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

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

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

然后,我将所有三个面板添加到构造函数中bodypanelMainFrame.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:52