package tim.prune.correlate; import java.awt.CardLayout; import java.awt.Component; import javax.swing.JPanel; /** * Panel to act as a card stack */ public class CardStack extends JPanel { private int _numCards = 0; private int _currCard = 0; private CardLayout _layout = null; private static final String cardName = "card"; /** * Constructor */ public CardStack() { _layout = new CardLayout(); setLayout(_layout); } /** * Add a card to the stack * @param inComponent component to add */ public void addCard(Component inComponent) { super.add(inComponent, cardName + _numCards); _numCards++; } /** * @return current card index, starting from 0 */ public int getCurrentCardIndex() { return _currCard; } /** * @return number of cards in the stack */ public int getNumCards() { return _numCards; } /** * Show the specified card * @param inIndex index of card, starting from 0 */ public void showCard(int inIndex) { if (inIndex >= 0 && inIndex < _numCards) { _currCard = inIndex; _layout.show(this, cardName + inIndex); } } }