0

我的程序中有一个选项卡式视图,在每个选项卡下我有几个面板,我用按钮在它们之间旋转。我决定为这些选项卡中的每一个实现一个 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...panels 行。我不确定这是否正常工作,但问题出现在我试图显示第一张卡片的构造函数的末尾,因为我添加它们的方式它没有唯一标识符。关于如何解决这个问题的任何想法?提前谢谢各位!

4

1 回答 1

0

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

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

然后在最后

cl.show(cards, "0");

编辑:我对 Swing 布局生疏了,不记得究竟是需要标识符是字符串还是任何对象,但你应该能够从这里弄清楚。

于 2011-12-30T16:06:45.927 回答