这是我尝试过的:
将一些 JPanel 拖到 JFrame 上(使用 NetBeans 检查器窗口)。
在 JFrame 构造函数中,使用 .setVisible(false)
使所有 JPanel 不可见,除了我想首先显示的那个。
它有效,我可以通过使用一些带有 actionPerformed 的按钮并将 .setVisible(false)
添加到当前卡片和 .setVisible(true)
来轻松地从一个按钮切换到另一个按钮> 到我想看的那个。
我现在想做的是使用 CardLayout previous()
和 next()
,类似于浏览器的后退/前进。我还想从不同的地方访问一个面板,即两个面板可以链接到同一个面板,因此之前的面板不会总是相同的。
我尝试在 JFrame 类中的 actionPerformed 中使用以下代码:
CardLayout cardLayout = (CardLayout) this.getLayout();
cardLayout.previous(this);
但是,它不起作用。我错过了什么?这应该符合我的要求吗?
最佳答案
由于您已将 JFrame
的布局设置为 CardLayout
,因此在使用其 next()
时需要使用父容器& previous()
方法。对于 JFrame
,父容器是内容 Pane 。所以改变:
cardLayout.previous(this);
到
cardLayout.previous(getContentPane());
关于java - CardLayout - 如何使用 NetBeans GUI Builder 使用 previous() 和 next()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13371259/