das ist die Klasse Rechteck:
und das die Klasse component:
wenn ich nun in einer beispielklasse die methode fahren nenne endet es in einer endlosen schleife, wenn ich doch genau die selbe methode anders nenne dann nicht. kann mir jmd erklären weshalb das so ist? ???:L
Java:
import java.awt.Color;
import java.awt.Graphics;
public abstract class Rechteck extends Component{
public Rechteck(){
x = Fenster.WIDTH/2; //Mitte des Fensters
y = Fenster.HEIGHT/2; //Mitte des Fensters
width = 1;
height = 1;
Fenster.add(this); //Rechteck wird auf dem Fenster angezeigt
}
@Override
public void zeichnen(Graphics g) {
g.setColor(color); //Farbe des Rechtecks wird aktualisiert
g.fillRect((int)x,(int)y,(int)width,(int)height); //Rechteck wird gemalt
}
}
Java:
import java.awt.Color;
import java.awt.Graphics;
public abstract class Component {
protected double x;
protected double y;
protected double width;
protected double height;
protected Color color = Color.GREEN;
public abstract void zeichnen(Graphics g);
public abstract void fahren();
public void horizontalBewegen(double entfernung) {
x += entfernung;
}
public void vertikalBewegen(double entfernung) {
y += entfernung;
}
public void breiteSetzen(double breite) {
width = breite;
}
public void hoeheSetzen(double hoehe) {
height = hoehe;
}
public void positionSetzen(double x, double y){
this.x = x;
this.y = y;
}
public void farbeSetzen(String s) {
if (s.equalsIgnoreCase("grün")) {
color = Color.GREEN;
} else if (s.equalsIgnoreCase("rot")) {
color = Color.red;
} else if (s.equalsIgnoreCase("schwarz")) {
color = Color.BLACK;
} else if (s.equalsIgnoreCase("blau")) {
color = Color.BLUE;
} else if (s.equalsIgnoreCase("cyan")) {
color = Color.CYAN;
} else if (s.equalsIgnoreCase("grau")) {
color = Color.gray;
} else if (s.equalsIgnoreCase("dunkelgrau")) {
color = Color.DARK_GRAY;
} else if (s.equalsIgnoreCase("hellgrau")) {
color = Color.LIGHT_GRAY;
} else if (s.equalsIgnoreCase("magenta")) {
color = Color.MAGENTA;
} else if (s.equalsIgnoreCase("pink")) {
color = Color.PINK;
} else if (s.equalsIgnoreCase("weiß")) {
color = Color.WHITE;
} else if (s.equalsIgnoreCase("gelb")) {
color = Color.YELLOW;
} else if (s.equalsIgnoreCase("dunkel_grün")){
}
}
public void farbeSetzen(Color color){
this.color = color;
}
}