private JButton generiereNeuenHandKartenKnopf(Karte neueKarte) {
        JButton handkarte = new JButton(neueKarte.getStadt().toString());
        handkarte.setBackground(neueKarte.getStadt().getLand().getFarbe());
        handkarte.setForeground(new Color(255, 255, 255));
        handkarte.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Spieler aktuellerSpieler = spiel.getAktuellerSpieler();
                if (!pruefeZyklus(e.getActionCommand())) {
                    if (aktuellerSpieler.getGelegtCount() > 0) {
                        int answer = JOptionPane.showConfirmDialog(new JPanel(), "Möchtest du diese Karte wirklich auspielen?"
                                , "Karte auspielen", 0);
                        switch (answer) {
                            case 0:
                                for (Karte karte : aktuellerSpieler.getHand()) {
                                    if (karte.getStadt().toString().equals(e.getActionCommand())) {
                                        spiel.karteAuspielen(karte);
                                        aktuellerSpieler.getHand().remove(karte);
                                        aktualisiereSpielerInformationen();
                                        verknüpfeSpielerAuslageMitSpiel();
                                        entferneHandKartenKnopf(karte);
                                    }
                                }
                                break;
                        }
                    } else {
                        consoleText.append("Noch viel zu lernen du hast, mein junger Padawan\n");
                        consoleText.append("(Schreib es dir endlich hinter die Ohren,\n das geht nur einmal pro Runde!)\n\n");
                    }
                } else {
                    consoleText.append("Warte eben ich hole dir schnell noch mehr Bier! Entweder läufst du im Kreis,\n" +
                            "oder dein Kopf dreht sich wie verrückt!!\n");
                    consoleText.append("(Du kannst während du eine Route baust,\n jede Stadt nur einmal besuchen!)\n\n");
                }
            }

            private boolean pruefeZyklus(String actionCommand) {
                boolean zyklus = false;
                for (Karte karte : spiel.getAktuellerSpieler().getAuslage()) {
                    if (karte.getStadt().toString().equals(actionCommand)) {
                        zyklus = true;
                    }
                }
                return zyklus;
            }

            private void entferneHandKartenKnopf(Karte karte) {
                Component buttonToRemove = null;
                for (Component comp : handkartenAreal.getComponents()) {
                    if (((JButton) comp).getText().equals(karte.getStadt().toString())) {
                        buttonToRemove = comp;
                    }
                }
                handkartenAreal.remove(buttonToRemove);
                handkartenAreal.revalidate();
                handkartenAreal.repaint();
            }

        });
        return handkarte;
    }