0

我有一个 JFrame,我将它用作主要的 JFrame,并在同一个 JFrame 中更改 JPanel。第一个 JPanel 已经在 J​​Frame 中,所以我可以用“this.removeall() then ,this.setContentPane(new JPanel2)”替换它,因为“this”在这里调用 JFrame 本身。

在另一个 JPanel 中,我想制作一个 JButton 来用另一个 JPanel 替换当前的 JPanel。问题是我以前不能执行相同的代码,因为这里的“this”调用的是 JPanel 而不是 JFrame。

问题是如何在 JPanel 中编写代码,让我让 JFrame 更改其“setContentPane”以查看第二个面板?


我在使用 CardLayout 中找到了答案。这个视频帮助我解决了这个问题

Netbeans 视频上的 CardLayout

4

1 回答 1

2

我想在 JPanel 的 buttonActionListner 中编写代码。我不会在 JFrame 中编写该代码,因此可以添加和删除每个 JPanel 以独立调用另一个 JPanel

@AndrewThompson-在界面设计中,我们使用了按钮而不是 CardLayout 或 Tabs。我想做所有的应用程序面板,并一一更改JFrame

必须打电话给父母(JFrameJPanel),

validate(); // for Java7 revalidate() for JFrame
repaint();

删除后添加一个新的JPanel,只有一次并且作为最后一个代码行

如前所述@AndrewThompson,更好、最简单、最简单的方法可能是使用 CardLayout

于 2012-09-13T05:56:47.750 回答