我使用以下方法点击按钮点击新JPanel
JPanel newP = new ProjectPage();
contentPane.revalidate();
setContentPane(newP);
ProjectPage
的位置:
public class ProjectPage extends JPanel
但是我如何在我的新ProjectPage
课程中创建按钮,将我带回原来的面板?
我的主要屏幕类声明如下:
public class MainScreen extends JFrame
答案 0 :(得分:4)
使用CardLayout,如图here所示。
有关详细信息,请参阅How to Use CardLayout。
作为更一般的建议,不要延伸JPanel
或JFrame
,而只是保留对它们的引用&根据每次使用需要构建它们。这个问题的一部分似乎是范围 - 相关的面板对调用代码不是“可见的”。在主类中保持对它们的引用是一个简单的解决方案。
答案 1 :(得分:2)
如果你想回到原来的JPanel,你必须通过添加一个字段private JPanel oldPanel;
创建新面板时,请获取旧面板并将其保存在该字段中,如:
oldPanel = getContentPane();
JPanel newP = new ProjectPage();
contentPane.revalidate();
setContentPane(newP);
如果您想返回原始面板,请执行以下操作:
setContentPane(oldPanel);