我有一个包含默认 JPanel 的主 JFrame。我正在尝试使用此 JPanel 将不同的 JPanel 附加到我的应用程序,以模拟浏览应用程序的效果。我注意到,要使 CardLayout 工作,JFrame 通常必须有某种方式来控制 JPanel 中显示的内容(例如按钮、下拉框等)。我想要做的是有一个主页( JPanel)加载到 JFrame 中的默认 JPanel 中,并允许用户使用该主页 JPanel 中可用的可点击按钮/图标进行导航。
由于 JFrame 和默认 JPanel 与其他 JPanel 位于不同的类中,因此我无法通过单击其中一个 JPanel 上的按钮来访问默认 JPanel(因为它是私有的)来更改其上显示的内容其他类。有没有办法解决?
另外,如果我将应用程序中所需的每个按钮都附加到 JFrame 并控制从那里显示的 JPanel,它会起作用吗?我可以根据需要使按钮可见/不可见,这有意义吗?
这是我在 JFrame 类中调用的代码:
private void jButton45MouseClicked(java.awt.event.MouseEvent evt) {
CardLayout card= (CardLayout) displayPanel.getLayout();
card.show(displayPanel, "register");
}
displayPanel 是循环显示所有卡片的默认面板,jButton45 是 JFrame 中标题为“Register”的按钮。“注册”是我试图显示的 JPanel 变量的名称。