Texturprobleme

Status
Nicht offen für weitere Antworten.

waxweazle

Mitglied
Ich habe folgende Probleme

1. Hätte ich gern gewusst, wie ich in einem JPanel eine "Hintergrundtextur" einfüge

2. Habe ich 3 Dateien um eine Spielfeldgrafik zu laden, jedoch habe ich arge Probleme diese überhaupt zum laufen zu bekommen.

Ich habe eine Datei Names Spielmenü:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import GUI.*;

import game.Spielfeld;
public class SpielMenu extends JFrame implements ActionListener, ItemListener
{
......
private Spielfeld spielfeld;

public SpielMenu() 
{
    
    spielfeld = new Spielfeld();
....
    spielfeld.hinzufügen();
    this.getContentPane().add(spielfeld);
    
    this.setSize(new Dimension(800, 800));
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    this.setLocation( (d.width - this.getWidth()) / 2,
                     (d.height - this.getHeight()) / 2);

   
.....
}
}

in der ein Spielfeld initialisiert wird.
Dann eine Datei Names Spielfeld:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import game.Wuerfel;

public class Spielfeld extends JPanel  implements MouseListener
{
  // Variablen Deklaration
  private GridBagConstraints gbc;
  private GridBagLayout gbl;
  
  private Wuerfel wuerfel;
.....

 public Spielfeld()
  {
    gbc = new GridBagConstraints();
    gbl = new GridBagLayout();
    
    wuerfel = new Wuerfel();
    wuerfel.zeichnen();
.....    
    setBackground(Color.yellow); //nur bis ich weiß, wie man die Hintergrundgrafik läd
    setLayout(gbl);
  }//end of Spielfeld

  public void addZelle(Component komp,int hoehe, int breite, int xpos, int ypos)
 {
     gbc.fill = GridBagConstraints.NONE;
     gbc.gridwidth = breite;
     gbc.gridheight = hoehe;
     gbc.gridx = xpos;
     gbc.gridy = ypos;
     gbl.setConstraints(komp,gbc);
     add(komp);
 }
  
  public void hinzufügen()
  {
   
    addZelle(wuerfel,2,2,7,2);
   
    JLabel normfeld = new JLabel(new ImageIcon("normfeld.gif"));
    JLabel blaufeld = new JLabel(new ImageIcon("blaufeld.gif"));
    
    addZelle(blaufeld,1,1,0,0);
    addZelle(normfeld,1,1,4,0);
.....

Hier habe ich zwei Grafiken in ein Label geladen und die Anzeige dieser beiden Funktioniert auch, jedoch werden diese Mittig angezeigt (habe ich etwas übersehen?)

Nun 3. Datei im Bund ist ein Würfelklasse:
Code:
import java.util.Random;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JComponent;

public class Wuerfel extends JComponent
{
    private Random rnd;
    private int Augenzahl = 0;
    private JLabel wuerfelg;
 //   private boolean aktive;

    public Wuerfel()
    {
        rnd = new Random();
 //       aktive = false;
    }
    /**
     * Würfelt eine Zahl zwischen 1 und 6 und gibt diese an die aufrufende
     * Funktion zurück
     */
    public void wuerfeln()
    {
        Augenzahl = rnd.nextInt(6) + 1;
    }
    
    public int getAugenzahl()
    {
       return Augenzahl;
    }

    public void zeichnen()
    {   
      switch(Augenzahl)
      {
        case 0 :  wuerfelg = new JLabel(new ImageIcon("würfeln.gif"));
          break;
        case 1 :  wuerfelg = new JLabel(new ImageIcon("eins.gif"));
          break;
        case 2 :  wuerfelg = new JLabel(new ImageIcon("zwei.gif"));
          break;
        case 3 :  wuerfelg = new JLabel(new ImageIcon("drei.gif"));
          break;
        case 4 :  wuerfelg = new JLabel(new ImageIcon("vier.gif"));
          break;
        case 5 :  wuerfelg = new JLabel(new ImageIcon("fünf.gif"));
          break;
        case 6 :  wuerfelg = new JLabel(new ImageIcon("sechs.gif"));
          break;        
      } //end of switch    
    }// end of zeichnen
}

Nun würde ich gern, das er die hier geladenen gifs, die abhängig von der Augenzahl geladen werden, übernimmt und in Spielfeld an einer festen Position einügt....
jedoch habe ich nach längerem überlegen und probieren nichst verwertbares hinbekommen. [/code]
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben