编写一个Java类来为我的程序创建CardLayouts

时间:2011-12-30 15:59:45

标签: java cardlayout variadic-functions

我的程序中有一个标签视图,在每个标签下我有几个面板,我用按钮旋转。我决定为这些标签中的每一个实现CardLayout,并且考虑到我有大约7个标签,我决定写一个类来使事情变得更整洁。该类称为PanelSystem,它接收已经创建的JPanel并将它们添加到CardLayout。我还将实现一个switchPanel方法在面板之间移动。到目前为止,我有:

public class PanelSystem {

JPanel cards;
CardLayout cl;

public PanelSystem(JPanel...panels) {
    // Create Panel with card layout
    cards = new JPanel(new CardLayout());

    // Add all the panels to the card system
    for (JPanel p : panels) cards.add(p);

    // Gains access to the card layout?
    cl = (CardLayout)(cards.getLayout());

    // Show starting card
    cl.show(cards, *UNIQUE IDENTIFIER*);
}
}

由于每个标签都有不同数量的JPanel,我必须实现JPanels ...面板行。我不确定这是否正常工作,但问题出现在构造函数的末尾,我试图显示第一张卡,因为它没有唯一的标识符,因为我添加它们的方式。有关如何解决这个问题的任何想法?先谢谢你们!

1 个答案:

答案 0 :(得分:0)

您可以像访问数组一样访问varargs(无论如何)。如果你用经典的for循环遍历它怎么样

for (int i = 0; i < panels.length; i++) {
    cards.add(panels[i], Integer.toString(i));
}

然后在最后

cl.show(cards, "0");

编辑:我在Swing布局上生锈了,不能确切地记住你是否需要你的标识符是一个字符串或只是任何对象,但你应该能够从这里弄明白。