Bilder als Variable an einem Objekt speichern

Juergen-87

Mitglied
Hallo,
ich bin an der Umsetzung eines Kartenspiels. Dabei ist jede Karte ein Objekt. Jetzt soll bei der Erzeugung der Karten-Objekte, jeder Karte ein eigenes Bild zugewiesen werden, das dann später auf einem Label oder einem Button angezeigt wird.
Wie bekomme ich es hin, dass das Bild als Variable beim Objekt "gespeichert" wird? Ich möchte ja später, wenn die entsprechende Karte aus einem Kartenstapel gezogen wurde, das Bild der Karte auf einem Label anzeigen lassen mit myLabel.setIcon(karte.bild).
Wie kann jetzt eine Referenz auf die Bildadresse (z.B. Laufwerk C...) in der Variablen bild bei meinem Karten-Objekt abgespeichert werden? Oder geht das ganz anders?
 
bastel dir dazu am besten eine Klasse (die getter und setter spare ich mir jetzt mal):

Java:
public class Karte {

    private String name;
    private int wert;
    private String bild;

[...]

public Karte(String name, int wert, String bild) {
        this.name = name;
        this.wert = wert;
        this.bild = bild;
    }

[...]

public ImageIcon getBild() {
        return new ImageIcon(this.bild);
    }

[...]
}

dann kannst du das Objekt entsprechend erzeugen:

Java:
Karte irgendeineKarte = new Karte("Dame",10, "C:\\Bilder\\Dame.jpg");

und für dein label:

Java:
mylabel.setIcon(irgendeineKarte.getBild);
nutzen.

Das ganze kannst du dann auch wunderbar in eine ArrayList packen:

Java:
ArrayList<Karte> kartenstapel = new ArrayList<>();
 
Danke für die schnelle Antwort. So werde ich's machen 🙂
Allerdings hab ich die Karten nicht in einer ArrayList, sondern in einem Stack gespeichert, weil ich dachte, das passt besser zum KartenStapel 😉
 
Das ist ja erstmal egal. Ein Stack ist sowas wie eine light Version einer ArrayList. Du hast halt den Wahlfreien Zugriff auf den Inhalt, was vielleicht noch mal praktisch wäre. Mit einem Stack kannst du nichts machen, was nicht auch mit einer ArrayList geht.
 

Zurück
Oben