vendredi 24 avril 2015
Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern
Posted on 05:06 by verona
Hallo liebe Community,
ich bin grade dabei ein wenig zu programmieren und nun stehe ich irgendwie vor einem Problem. Ich kann dieses Problem irgendwie nicht lösen, vielleicht weiß ein erfahrenderer programmiere dort abhilfe.
Meine Klasse von der ich erbe :
Z.b Square die Farbe ändern.
Weiß jemand wie ich in der Methode
mein Objekt von Typ Square die Farbe ändern kann ? Ich kann ja nicht eine neue Instanz der Klasse Square erstellen und dort dann den Datentyp Graphics übergeben und dann die Farbe ändern, weil er sonst ja tausende machen würde.
Mit freundlichen Grüßen
Zidi
ich bin grade dabei ein wenig zu programmieren und nun stehe ich irgendwie vor einem Problem. Ich kann dieses Problem irgendwie nicht lösen, vielleicht weiß ein erfahrenderer programmiere dort abhilfe.
Meine Klasse von der ich erbe :
Java Code:
-
-
-
package de.marvin.oopLabor3;
-
-
import java.awt.Color;
-
import java.awt.Dimension;
-
import java.awt.Graphics;
-
import java.awt.GridLayout;
-
import java.awt.Point;
-
import java.awt.event.MouseEvent;
-
import java.awt.event.MouseListener;
-
import java.awt.event.MouseMotionListener;
-
import java.util.Random;
-
-
import javax.swing.JFrame;
-
import javax.swing.JPanel;
-
-
{
-
private static final long serialVersionUID = 1L;
-
private int fensterGroesse = 600;
-
private int randomAuswahl;
-
private int gridX = 8;
-
private int gridY = 8;
-
private final int MAXRANDOM = 5;
-
private final int MINRANDOM = 1;
-
private final int MAXCOLOR = 240;
-
private final int RedBorderSize = 40;
-
-
public void felderErstellung()
-
{
-
f.setSize(fensterGroesse,fensterGroesse);
-
f.setLocationRelativeTo(null);
-
f.setResizable(false);
-
-
for(int i = 0; i < (gridX*gridY);i++)
-
{
-
randomAuswahl = randInt(MINRANDOM,MAXRANDOM);
-
switch(randomAuswahl)
-
{
-
case 1:
-
f.add(new Square());
-
break;
-
case 2:
-
f.add(new Circle());
-
break;
-
case 3:
-
f.add(new Triangle());
-
break;
-
case 4:
-
f.add(new Pacman());
-
break;
-
case 5:
-
f.add(new MySpecialShape());
-
break;
-
}
-
}
-
f.setVisible(true);
-
}
-
-
protected int randInt(int min, int max)
-
{
-
int randomNum = rand.nextInt((max - min) + 1) + min;
-
-
return randomNum;
-
}
-
-
protected int[] setRelativeSize()
-
{
-
int FillViereck = randInt(MINRANDOM,MAXRANDOM); //Muss gleiche größe haben, deshalb eine Variable
-
-
int[] koordinaten = {p0Fill.x,p0Fill.y, dFill.width, dFill.height};
-
-
return koordinaten;
-
}
-
-
{
-
g.drawRect(getWidth()/RedBorderSize,getHeight()/RedBorderSize,getWidth()-2,getHeight()-2); // Sonst sind die L
-
}
-
-
{
-
g.setColor(new Color(randInt(MINRANDOM,MAXCOLOR),randInt(MINRANDOM,MAXCOLOR),randInt(MINRANDOM,MAXCOLOR)));
-
}
-
-
{
-
}
-
-
{
-
}
-
-
{
-
-
}
-
-
{
-
-
}
-
-
{
-
-
}
-
-
//These are mousemoition
-
-
{
-
-
-
}
-
-
{
-
}
-
-
}
Z.b Square die Farbe ändern.
Java Code:
-
-
package de.marvin.oopLabor3;
-
-
import java.awt.Graphics;
-
-
public class Square extends GeometricObject
-
{
-
private static final long serialVersionUID = 1L;
-
-
{
-
super.paintComponent(g);
-
int[] koordinaten = setRelativeSize();
-
-
setColor(g);
-
g.fillRect(koordinaten[0], koordinaten[1], koordinaten[2],koordinaten[3]);
-
-
addMouseMotionListener(new GeometricObject());
-
kastenErstellen(g);
-
}
-
}
Weiß jemand wie ich in der Methode
Java Code:
-
-
{
-
}
mein Objekt von Typ Square die Farbe ändern kann ? Ich kann ja nicht eine neue Instanz der Klasse Square erstellen und dort dann den Datentyp Graphics übergeben und dann die Farbe ändern, weil er sonst ja tausende machen würde.
Mit freundlichen Grüßen
Zidi
Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire