public void showCards(Card topCard) {
        int top = 0;
        for (int i = 0; i < cards.size(); i++) {
            if (cards.get(i) == topCard) {
                top = i;
            }
        }

        this.removeAll();

        if (cards.size() * Card.W < this.getSize().width) {
            int start = this.getSize().width - (cards.size() - 1) * Card.W;
            start /= 2;
            for (int i = 0; i < cards.size(); i++) {
                cards.get(i).setCardPosition(start + i * Card.W, Card.H / 2);
                this.add(cards.get(i));
            }
        } else if (cards.size() != 1) { // see: division by zero
            for (int i = top; i < cards.size(); i++) {
                cards.get(i).setCardPosition(
                        Card.W / 2 + i * (this.getSize().width - Card.W)
                                         / (cards.size() - 1),
                        Card.H / 2);
                this.add(cards.get(i));
            }
            for (int i = top - 1; i >= 0; i--) {
                cards.get(i).setCardPosition(
                        Card.W / 2 + i * (this.getSize().width - Card.W)
                                         / (cards.size() - 1),
                        Card.H / 2);
                this.add(cards.get(i));
            }
        } else {
            cards.get(0).setCardPosition(Card.W / 2, Card.H / 2);
            this.add(cards.get(0));
        }
        this.repaint();
    }