从JPanel内的JButton替换当前JPanel而不是JFrame

时间:2012-09-13 05:14:56

标签: java swing netbeans jframe jpanel

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

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

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


我在使用CardLayout时找到了答案..这段视频帮助我解决了问题

CardLayout on Netbeans video

1 个答案:

答案 0 :(得分:2)

  

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

  

@ AndrewThompson-在界面设计中我们使用的按钮不是CardLayout或Tabs。我想制作所有应用程序面板并在一个JFrame中逐个更改它们

必须致电父母(​​JFrameJPanel),

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

删除后添加新的JPanel,只需一次和最后一行代码

正如@AndrewThompson提到的更好,最简单和最简单的方法可能是使用CardLayout