Darstellungsproblem mit Kartenspiel

Status
Nicht offen für weitere Antworten.

H2SO4

Bekanntes Mitglied
Zunächst einmal den Code der beiden Klassen:

Karte.class
Code:
import java.awt.*;
import javax.swing.*;

public class Karte extends JPanel
{
    private int zHeight = 96;
    private int zWidth = 71;
    private int zValue;
    private int zType;
    private boolean zAufgedeckt;
    
    private String zName;
    
    private Image zImg;
    private Image zRueckseite; //getToolkit().getImage("Images/Rueckseite.gif");

    public Karte(int pValue, int pType, String pName)
    {
        zValue = pValue;
        zType = pType;
        zName = pName;
        zAufgedeckt = false;
        
        this.loadImage();
        
        setPreferredSize(new Dimension(zWidth, zHeight));
    }
    
    public void zudecken(){...]
    public void aufdecken(){...}
    
    private void loadImage()
    {
        zImg = Toolkit.getDefaultToolkit().getImage("Images/" + zType + "_" + zName + ".gif");
        zRueckseite = Toolkit.getDefaultToolkit().getImage("Images/Rueckseite.gif");
    }
    
    protected void paintComponent(Graphics g)
    {
        g.setColor(Color.white);
        g.fill3DRect(0, 0, zWidth, zHeight, true); //wird angezeigt
        g.drawImage(zImg, 0, 0, null); // geht nicht
        g.drawString("kjhkjh",5,5); // geht nicht
    }
        
    public int getValue(){...}
    public int getType(){...}
    public boolean getAufgedeckt(){...}
    public String getName(){...}
}

Test.class
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame
{
    private JPanel contentPane = new JPanel();
    private Karte karte;
    
    public Test()
    {
        JFrame frame = new JFrame("JMau Mau v1.0");
        frame.setSize(830, 680);
        frame.setLocation(10, 100);
        frame.setDefaultCloseOperation(3);

        karte = new Karte(10, 1, "Dame");
        karte.aufdecken();
        
        contentPane.setLayout(null);
        contentPane.add(karte);
        karte.setBounds(30, 30, karte.getPreferredSize().width, karte.getPreferredSize().height);
        
        frame.setContentPane(contentPane);
        frame.setVisible(true);
    }
    
    public static void main(String[] args)
    {
        new Test();
    }
}

Mein Problem besteht nun darin, dass das Bild in Klasse Karte nicht dargestellt wird; Das weiße Rechteck aber schon. Lasse ich das weg, bleibt das Fenster grau. Das mit drawString sollte auch nur zu Testzwecken dienen, geht aber auch nicht.

Kann es sein, dass ich vielleicht mit dem Bilderladen etwas falsch mache? Wenn ich mir aber unter BlueJ das Objekt genauer angucke (Inspizieren), dann steht da, dass ihm ein Bild bekannt ist.
Habe es auch schon mit nem Mediatracker und was weiß ich nicht alles probiert.
 
R

Roar

Gast
jane, paintKarte wird ja auch nie aufgerufen wie soll da was gezeichnet werden...
du musst die methode paintComponent() überschreiben
 

H2SO4

Bekanntes Mitglied
Habe ich auch noch gemacht. Hier nur noch nicht geändert. Aber es wird trotzdem nur dieses weiße Rechteck angezeigt. aber niemals ein Bild.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben