Swing Elemente aus Arraylist auf JFrame anzeigen

Gaara92

Mitglied
Hallo zusammen
Ich versuche gerade Dominion(ein Kartenspiel) zu programmieren. Nun habe ich die Karten als JButtons programmiert und diese in Arraylists gespeichert. Wie kann ich die ersten 5Karten des Spielers, der an der Reihe ist anzeigen lassen? Wahrscheinlich ist es einfacher als ich denke, aber bisher kam ich nicht auf eine Lösung.

lg Gaara92
 

Skanky

Mitglied
Will ich am selber Spiel sitze, will ich mein Frage hier mal gleich mit anbringen.

Ich habe mein Version jetzt so aufgebaut, dass die ganze Logik und die Klassen die die das Spiel braucht (unter anderem auch die Karten) keinerlei Ausgabe enthält. Nun stellt sich mir aber die Frage, wie mache ich die GUI dazu? Bei meine ersten Versuch habe ich die GUI Elemente gleich in den Klassen eingebaut aber ich empfinde das nicht als Optimal. Ich würde gerne die Logik von der Anzeige trennen, habe imo aber keine Ahnung wie ich die anzeige Sinnvoll mit den Objekten verbinde ohne diese zusammen zu schreiben.

Ich habe Klassen für:
Karten - Aktionskarten
Wertkarten

Stapel - (Handkarten, Ablagestapel, Nachziehstapel usw)
- KaufkartenStapel

Helfer - RundenHelfer
- StapelHelfer

Phasen - Kaufphase
- Aktionphase

und fast alle Elemente machen sich irgendwie auf der GUI bemerkbar, jedoch habe ich keine Ahnung wie.
Meine Überlegung wäre jetzt, für jede Klasse die eine GUI braucht nochmal eine extra Klasse für die Anzeige zu schreiben (Was bei den Karten auch sinn macht). Aber irgendwie ist mir das Komisch^^

Ich hoffe mir kann irgendwie einer ein Tipp geben, oder irgendwie mal zeigen wie man es bei anderen Spielen gelöst hat, das die GUI und Logik getrennt ist.

Grüße und Danke,
Skanky
 
V

vanny

Gast
So,
sowohl für Garaa als auch für Shanky:

es ist nicht sinnvoll, für jede Karte eine GUI-Komponente zu erstellen!

Die Komponenten müssen nur die "Karten" (oder was auch immer) darstellen, welche der User sehen muss.
Wenn er also die ersten 3 Karten zeiht, dann sieht er auch nur 3 Karten.
Ergo benötigt die GUI dann auch max. 3 Komponenten, die diese Karten darstellen.
Die Collection (zBsp. ArrayList) hält nur die Daten zu den Karten und nicht massig JButtons:oops:
Je nachdem, welche Karten aus der Collection gezogen werden, zeichnet man dann die entsprechenden Grafiken auf die Komponenten.

Gruß Vanny
 

Marco13

Top Contributor
Ein Konzept, das zwar nicht primär für Spiele gedacht ist, aber doch oft ganz gut passt (und woran man ein bißchen was lernen kann) ist Model-View-Controller. Als Beispiel @Skanky : Wenn man das ganze jetzt zu einem Modell Namens "Spiel" zusammenstellt, gibt es eben eine "SpielView", die das ganze anzeigt (aber selbst wieder unter-Views für unter-Modelle wie z.B. einen "Kartenstapel" enthalten kann)
 

Skanky

Mitglied
Hey danke :D

@Marco13 MVC hatte ich dabei schon im Kopf und @vanny, ich hatte nicht vor massig JButtons oder so zu Generieren. Die frage ist halt nur, wie ich das GUI Element sinnvoll mit dem Modell und der Logik zusammen bekomme. Da ist leider das einzige was mir einfällt, die GUI Bestandteile in den "core" Code ein zu bauen aber das will ich nicht.

Oder anders, prinzipiell habe ich das Spiel schon fertig. Nun kann ich mich entscheiden, ob ich es über die Konsole spielen möchte oder halt über eine GUI. Ich möchte aber nicht in der Fertigen Teil eingreifen (was sich sicher an einigen Stellen nicht vermeiden lässt). Sondern die Eingabe/Ausgabe loslösen und austauschbar machen (mit Sicht auf Verbesserungen, Optimierungen)

Ich weiß das ich noch Klassen brauche, die dann die Eingabe verwalten und an die Logik weiter geben und halt welche, die die Anzeige steuern.

Ich denke mal man wird aus meinem Kauderwelsch nicht sehr schlau, ich möchte mich auch gleich dafür entschuldigen aber irgendwie kann ich das nicht besser beschreiben. (Wenn ichs könnte hätte ich sicher das Problem nicht^^)

Mein Idee:
war, eine Klasse "KartenGUI" zu schreiben, die allgemein von allen Karten genutzt werden kann/soll. Sie braucht MouseListener für die Eingabe. Aber irgendwie hänge ich hier fest, soll zB.: die GUI Klasse die eigentliche Karten-Klasse beerben? Oder sollte ich ehr ein Interface machen? Aber da würde ich ja wieder an die "core" Sachen rum schrauben.

Danke noch mal und wie immer bin ich über jede Denkanregung dankbar.
Skanky
 
Zuletzt bearbeitet:
V

vanny

Gast
Denkbar wäre, ob Interface oder nicht, deinen karten eine Methode getGuiInfo(); zu verpassen, die zBsp. ein Array mit Werten liefert, womit dann die GUI das passende Bild einlädt und die passenden Werte anzeigt.

Dann musst du nicht viel an deiner Logik ändern und kannst bequem deine Gui mit den nötigen Informationen füttern.

Das mit den JButtons im Array ging an Garaa :p

Gruß Vanny
 

Marco13

Top Contributor
Pauschal irgendeine Methode "getGuiInfo" war wohl ... eher "suggestiv" gemeint. Bieten die Modellklassen nicht schon alle Informationen, die benötigt werden, um im GUI was passendes anzuzeigen?
 

Skanky

Mitglied
Danke euch beiden,

ich denke, dass ich das so langsam hin bekomme. Das nächste auf meiner TODO liste ist dann nur noch XML Datein auslesen und Grafiken laden und im Speicher behalten aber das Passiert hier nicht rein :).

Danke nochmals,
Skanky
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Elemente statisch anordnen AWT, Swing, JavaFX & SWT 4
_user_q ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
G Swing Variable Elemente für GroupLayout AWT, Swing, JavaFX & SWT 18
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
J JavaFX JavaFX Elemente an Fenstergröße skalieren AWT, Swing, JavaFX & SWT 5
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
T LayoutManager Anordnen der Elemente im GridBagLayout AWT, Swing, JavaFX & SWT 11
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
sandaime Swing 3 JComboBoxen ausgelesen Elemente einzel ausgeben AWT, Swing, JavaFX & SWT 6
M JavaFX GUI-Elemente erstellen, nachdem die GUI geladen hat AWT, Swing, JavaFX & SWT 4
TheJavaKid JavaFX Elemente positionieren AWT, Swing, JavaFX & SWT 2
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
D JavaFX Elemente aus VBox unterscheiden AWT, Swing, JavaFX & SWT 1
K Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich AWT, Swing, JavaFX & SWT 10
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
wolfgang63 JavaFX Elemente einer Group entfernen AWT, Swing, JavaFX & SWT 1
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
O Ähnliche GUI Elemente - vererbung?! AWT, Swing, JavaFX & SWT 0
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
T Alle Swing-Elemente anzeigen AWT, Swing, JavaFX & SWT 9
M Swing Elemente im Dialog neu "laden". AWT, Swing, JavaFX & SWT 6
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
K LayoutManager Wieso verschwinden Elemente? AWT, Swing, JavaFX & SWT 20
M JFrame + JNA/aero modul - GUI Elemente so möglich? AWT, Swing, JavaFX & SWT 28
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
R JApplet, Elemente unsichtbar AWT, Swing, JavaFX & SWT 2
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
L ID für GUI Elemente generieren AWT, Swing, JavaFX & SWT 11
C SWT-Elemente an View-Fenster angleichen und automatisch resizen AWT, Swing, JavaFX & SWT 3
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
P Elemente im Kreis aufstellen AWT, Swing, JavaFX & SWT 5
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
L SWT tree elemente markieren AWT, Swing, JavaFX & SWT 4
C Swing Elemente in JList sortieren AWT, Swing, JavaFX & SWT 2
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
S JTree & JComboBox - Elemente übers Fenster hinaus anzeigen AWT, Swing, JavaFX & SWT 9
F JScrollPane überlagert andere Elemente AWT, Swing, JavaFX & SWT 5
S Swing UI-Elemente ordnen sich ungewollt in einer Reihe (ohne Layout) AWT, Swing, JavaFX & SWT 5
K Swing Elemente auf Zeichenfeld verschieben AWT, Swing, JavaFX & SWT 8
S Mit eigener Klasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
R In JFrame oder in Canvas mit grafischen Elemente zeichnen AWT, Swing, JavaFX & SWT 2
E Swing JList zur Laufzeit hinzugefügt elemente nicht sichtbar?! AWT, Swing, JavaFX & SWT 2
S Swing Elemente einer JList Farbig hinterlegen AWT, Swing, JavaFX & SWT 6
B Swing Dynamisch Elemente in JScrollPane hinzufügen AWT, Swing, JavaFX & SWT 6
M Swing Von einem Controller aus View-Elemente ändern AWT, Swing, JavaFX & SWT 11
T DND mit JList Elemente nicht am Ende einfügen AWT, Swing, JavaFX & SWT 3
Tobse Swing JList elemente hinzufügen AWT, Swing, JavaFX & SWT 4
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
D Elemente werden nicht angezeigt AWT, Swing, JavaFX & SWT 2
W jComboBox unterschiedlich selectable elemente AWT, Swing, JavaFX & SWT 7
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
N Swing JList Elemente ausgeben fehlerhaft AWT, Swing, JavaFX & SWT 4
M Swing Alle Elemente eines Panels? AWT, Swing, JavaFX & SWT 9
S Eigene GUI Elemente erstellen AWT, Swing, JavaFX & SWT 6
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
C (Swing)GUI-Elemente werden nicht aktualisiert. AWT, Swing, JavaFX & SWT 2
P JList: Reihenfolge der Elemente per Drag'n'Drop ändern. AWT, Swing, JavaFX & SWT 9
M Swing JList - Elemente umbenennen? AWT, Swing, JavaFX & SWT 4
MrMilti Gezeichnete Java2D Elemente mit Events versehen AWT, Swing, JavaFX & SWT 3
H [gelöst] Swing Elemente verdecken AWT, Swing, JavaFX & SWT 14
B In externer Eventhandlerklasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
K BoxLayout skaliert die "falschen" Elemente AWT, Swing, JavaFX & SWT 5
A SWT - Elemente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
S Andere Elemente in JComboBox anzeigen AWT, Swing, JavaFX & SWT 2
T Elemente werden nicht direkt angezeigt AWT, Swing, JavaFX & SWT 3
S Nachträglich Swing-Elemente in JFrame erzeugen AWT, Swing, JavaFX & SWT 18
K Titel für eingebundene Elemente wie JPanel AWT, Swing, JavaFX & SWT 3
F Dynamische Swing Elemente AWT, Swing, JavaFX & SWT 10
B Grafische Anordnung der Elemente AWT, Swing, JavaFX & SWT 2
S JComboBox zeigt beim 1. öffnen nur 2 Elemente ? AWT, Swing, JavaFX & SWT 9
J LayoutManager der Elemente untereinander anordnet. AWT, Swing, JavaFX & SWT 11
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
G JButton und andere J-Elemente: Markierung ausblenden AWT, Swing, JavaFX & SWT 6
Paule alle Elemente eines SWT Trees AWT, Swing, JavaFX & SWT 8
S List Elemente AWT, Swing, JavaFX & SWT 4
G Elemente erst da wenn mit Maus drüber gefahren bin AWT, Swing, JavaFX & SWT 2
E GUI-Elemente aus txt- oder xml-File erstellen? AWT, Swing, JavaFX & SWT 5
J FAQ programmieren, welche Swing-Elemente AWT, Swing, JavaFX & SWT 7
M Elemente hängen dicht aufeinander AWT, Swing, JavaFX & SWT 2
S Falsche Position, Elemente erscheinen nicht, Flackern AWT, Swing, JavaFX & SWT 6
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
W Elemente aus JPanel bzw. GridBag löschen und ersetzen AWT, Swing, JavaFX & SWT 18

Ähnliche Java Themen

Neue Themen


Oben