一次将CardLayout中的多张卡片设置为False

时间:2013-11-29 20:28:32

标签: java swing visible cardlayout

我理解使用Card Layout for Swing,切换卡片的概念,您可以简单地调用所需的卡片并将可见性设置为true或false。例如,给定四张名为a,b,c和d的牌,我希望显示a但不显示b,c和d。现在,我的代码集与此类似:

a.setVisible(true);
b.setVisible(false);
c.setVisible(false);
d.setVisible(false);

无论如何,不​​是必须单独调用所有四张卡并设置其可见性,我可以立即调用所有,将它们设置为false,然后将Card a设置为true? 例如

//some method to set all cards to false
a.setVisible(true);

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

  

我理解使用Card Layout for Swing,切换卡片的概念,你可以简单地调用你想要的卡片并将可见性设置为真或假

不,这不是概念。你永远不会玩面板的可见性。 CardLayout为您做到了这一点。您所要做的就是使用show(), next() or previous()方法。

阅读How to Use Card Layout上的Swing教程中的部分以获取工作示例。

答案 1 :(得分:1)

我不知道为什么你甚至需要CardLayout这样的选项。它具有previousnextfirst功能来遍历组件,就像翻转卡片一样。 Check out this demo example to see CardLayout in action。如果您仍然需要出于自己的原因选择此选项,为什么不尝试获取CardContainer组件列表:

Component[] comp = cardContainer.getComponents();
comp[0].setVisible(false);