Swing eigene Dialoge, aber wie genau?

MrBerlin

Mitglied
Hi folks!

Bin neu bei euch. Ich bin Kai, 25 Jahre alt und programmiere seit ich 12 bin (in Java seit einem halben Jahr). Habe schon oft nützliche Dinge bei euch gefunden, aber für dieses Problem habe ich leider nichts gefunden, das mich nicht noch mehr verwirrt hätte.

Ich wälze seit einigen Tagen diverse Tutorials, aber irgendwie werd ich mit jedem Mal verwirrter.

Mein Problem:
Ich möchte für mein Kartenspiel einen MODALEN Dialog, der sagen wir 4 Karten abbildet und der Nutzer soll eine Davon auswählen.
Das Ergebnis soll übergeben werden, so dass ich das ganze dann benutzen kann ähnlich wie hier:

Java:
Card karte1 = new Card("testkarte1");
Card karte2 = new Card("testkarte2");
Card karte3 = new Card("testkarte3");
Card karte4 = new Card("testkarte4");
Card ausgewaehlteKarte = new CardChooser(new Card[]{karte1, karte2, karte3, karte4});
/*
hier soll dann die Verabeitung von ausgewaehlteKarte stattfinden
*/
die nötigen Methoden zum Zeichnen der Karten im CardChooser sind dabei zu vernachlässigen.

Meine eigentliche Frage: realisiere ich das am besten mit JDialog, JOpionPane oder doch mit nem JFrame mit wait() und notify(). Was wären die Vor- und Nachteile.

schon mal danke im Vorraus :toll:
 
Genau für solche Zwecke ist der JDialog gemacht.

Mehr muss man nicht sagen denke ich 😛

Gruß Vanny
 
und wo in meinem JDialog finde ich die Funktion, die den Wert meiner Karten zurückgibt? ^^
Oder muss ich das mit nem ActionListener machen? Wenn ja, wo wäre dann der Vorteil gegenüber eines gewöhnlichen JFrames?
 
okay, wieder was gelernt. Eine kurze Erklärung warum wäre noch hilfreich.

und wo in meinem JDialog finde ich die Funktion, die den Wert meiner Karten zurückgibt? ^^
Oder muss ich das mit nem ActionListener machen?

Das wüsste ich auch noch gerne 🙂

(ich gestehe in die OOP bin ich erst mit Java eingetaucht. Ich bitte daher um Verständnis, dass vieles noch etwas dauert bis es bei mir auch Sinn ergibt) 😀
 
Das ist von dir selbst zu implementieren.

sprich ungefähr so?

Java:
// [...]
// in der Klasse CardChooser eine Funktion getChoosenCard() und dann

// hier die Karten erstellen und ... (siehe oben)

Card ausgewaehlteKarte = new CardChooser(new Card[]{karte1, karte2, karte3, karte4}).getChoosenCard();
EDIT: obengenanntes funktioniert einwandfrei. Ich danke für den Schubs 😀
 
Zuletzt bearbeitet:

Zurück
Oben