我有一个JFrame,我将它用作主要的一个,并在同一个JFrame中更改JPanel。第一个JPanel已经在JFrame中,所以我可以用“this.removeall()然后,this.setContentPane(new JPanel2)”替换它,因为“this”在这里调用JFrame本身。
在另一个JPanel中,我想制作一个JButton来替换当前的JPanel。问题是我之前不能执行相同的代码,因为“this”在这里调用JPanel而不是JFrame。
问题是如何在JPanel中编写代码允许我让JFrame更改其“setContentPane”以查看第二个Panel?
我在使用CardLayout时找到了答案..这段视频帮助我解决了问题
答案 0 :(得分:2)
我想在JPanel的buttonActionListner中编写代码。我不会在JFrame中编写该代码,因此可以添加和删除每个JPanel以独立调用另一个
和
@ AndrewThompson-在界面设计中我们使用的按钮不是CardLayout或Tabs。我想制作所有应用程序面板并在一个JFrame中逐个更改它们
必须致电父母(JFrame
,JPanel
),
validate(); // for Java7 revalidate() for JFrame
repaint();
删除后添加新的JPanel
,只需一次和最后一行代码
正如@AndrewThompson
提到的更好,最简单和最简单的方法可能是使用CardLayout