Ich mache ein Kartenspiel für Klasse, das ein dealButton benötigt, um eine Kartenhand auszugeben und sie im Rahmen anzuzeigen. Ich habe eine Schleife, die durch die gegebene Hand geht und die Karten richtig erstellt und anzeigt, aber wenn dieser Code vom Konstruktor in den ActionListener des DealButtons verschoben wird, wird nichts angezeigt.Hinzufügen von JButtons außerhalb des JFrame-Konstruktors
Gibt es eine Möglichkeit, dem Rahmen außerhalb des Konstruktors JButtons hinzuzufügen?
Hier ist der Code, der die Hände werden die Anzeige sollte:
deck.shuffle();
Hand hands[] = deck.deal(4, 13);
GridBagConstraints handCon1 = new GridBagConstraints();
handCon1.insets = new Insets(0, 0, 0, 0);
handCon1.gridy = 10;
int handSize = hands[0].getCards().length;
Card cards[] = hands[0].getCards();
for(int i = 0 ; i < handSize ; i++){
JButton card = new JButton();
PlayCardListener playCard = new PlayCardListener(deck, cards[i], card);
card.addActionListener(playCard);
card.setIcon(new ImageIcon(cards[i].getImg()));
card.setBorder(null);
handCon1.gridx = i;
add(hand1);
hand1.add(card, handCon1);
Willkommen bei Stack-Überlauf aufgerufen werden soll! Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines [mcve]. Du sagst nur "wenn ich es außerhalb des Konstruktors versuche, funktioniert es nicht". Dann poste ** diesen Code, der nicht funktioniert. Und die Antwort auf Ihre Frage lautet: JA, das ist möglich. – GhostCat