// Eigenschaften
Image ScreenImage; // Bild das bei der Paint Methode gezeichnet wird sobald es != null ist
Image Pictures[]; // Var zum Bilder rein laden
int RandomImageField[];
// Paint Methode überschreiben
public void paint(Graphics b)
{
Graphics2D g = (Graphics2D)b;
if(ScreenImage != null)
g.drawImage(this.ScreenImage,0, 0, this);
}
// Funktion die die Bilder lädt
private void LoadImage()
{
// Neue Bilder erstellen
this.Pictures = new Image[20];
// Alle Bilder laden
for(int i=1, j=0; j < 20; i++,j++)
this.Pictures[j] = new ImageIcon("C:/bilder/image" + i + ".jpg").getImage(); // Bilder laden
}
// Funktion zum zuteilen welches Bild auf dem Bildschirm wo gezeichnet werden soll
private void makeRandomImages()
{
// Variable erzeugen
Random r = new Random(); // Random erzeugen
int ImageNumber;
int Field = 0;
int Number[] = new int[18];
int ExistCount = 0;
this.RandomImageField = new int[36]; // neue Int Wert erzeugen
// Solange nicht alle Felder gefüllt wurden weitermachen
while(Field < 36)
{
ImageNumber = r.nextInt(18); // Neue Zufallszahl zwischen 0 und 16 generieren
// Überprüfen ob schon zwei Zahlen existieren
if(Number[ImageNumber] < 2)
{
Number[ImageNumber]++;
this.RandomImageField[Field] = ImageNumber;
Field++;
}
}
}
// Funktion die die Bilder auf die Fläche zeichnet
private void PaintImagesToFrame()
{
// Variable deklarieren
Graphics g;
int x = 10;
int y = getInsets().top + 5;
int displayImage = 0;
this.ScreenImage = createImage(getSize().width, getSize().height); // Bild erstellen
g = this.ScreenImage.getGraphics(); // Graphics Object holen
// Schleifen zum Zeichnen der Bilder
for(int i=0; i < 6;i++ )
{
for(int j=0; j < 6; j++)
{
g.drawImage(this.Pictures[this.RandomImageField[displayImage]],x,y,this); // Bild zeichnen
g.drawImage(this.Pictures[19],x,y,this); // Bild zeichnen
x += this.Pictures[this.RandomImageField[displayImage]].getWidth(this) + 10; // Bildbreite errechnen und 10 dazu addieren
displayImage++;
}
x = 10; // x wieder auf Anfangswert setzen
y += this.Pictures[0].getHeight(this) + 10; // Bildhöhe errechnen und 10 dazu addieren
}
repaint(); // Neuzeichnen
}