private void createComponents(String playerName) {
        JLabel[] jlabels = {
            nameLabel = new JLabel(playerName),
            handSizeLabel = new JLabel("Hand size"),
            healthPointsLabel = new JLabel("Health points"),
            librarySizeLabel = new JLabel("Library size"),
            poisonCountersLabel = new JLabel("Poison counters"),
            handSizeValue = new JLabel("..."),
            healthPointsValue = new JLabel("..."),
            librarySizeValue = new JLabel("..."),
            poisonCountersValue = new JLabel("..."),
        };
        for (JLabel e : jlabels) {
            e.setHorizontalAlignment(JLabel.CENTER);
        }
        
        viewGraveyardButton = new JButton("Graveyard");
        viewGraveyardButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Game.client.send(
                        new Search(-1, null, Zone.GRAVEYARD, -1, playerID));
            }
        });
        viewGraveyardButton.setFocusable(false);
        
        viewExiledButton = new JButton("Exiled");
        viewExiledButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Game.client.send(
                        new Search(-1, null, Zone.EXILED, -1, playerID));
            }
        });
        viewExiledButton.setFocusable(false);

        poisonButton = new JButton("Poison");
        poisonButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String[] examples = new String[] {"-1", "5", "+1"};
                String x = (String) JOptionPane.showInputDialog(
                        null,
                        "Enter new amount of poison counters for "
                        + nameLabel.getText(), Main.TITLE_SHORT,
                        JOptionPane.PLAIN_MESSAGE, null,
                        null, examples[new Random().nextInt(3)]);

                if (x == null) {
                    return;
                }

                int value = Integer.parseInt(poisonCountersValue.getText());
                try {
                    if (x.charAt(0) == '-') {
                        value -= Integer.parseInt(x.substring(1));
                    } else if (x.charAt(0) == '+') {
                        value += Integer.parseInt(x.substring(1));
                    } else {
                        value = Integer.parseInt(x);
                    }
                } catch (NumberFormatException ex) {
                    return;
                }

                Game.client.send(new Player(playerID, value, Player.POISON));
            }
        });
        poisonButton.setFocusable(false);

        healthButton = new JButton("Health");
        healthButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String[] examples = new String[] {"-5", "20", "+5"};
                String x = (String) JOptionPane.showInputDialog(
                        null,
                        "Enter new health value for " + nameLabel.getText(),
                        Main.TITLE_SHORT, JOptionPane.PLAIN_MESSAGE, null,
                        null, examples[new Random().nextInt(3)]);

                if (x == null) {
                    return;
                }

                int value = Integer.parseInt(healthPointsValue.getText());
                try {
                    if (x.charAt(0) == '-') {
                        value -= Integer.parseInt(x.substring(1));
                    } else if (x.charAt(0) == '+') {
                        value += Integer.parseInt(x.substring(1));
                    } else {
                        value = Integer.parseInt(x);
                    }
                } catch (NumberFormatException ex) {
                    return;
                }

                Game.client.send(new Player(playerID, value, Player.HEALTH));
            }
        });
        healthButton.setFocusable(false);
    }