Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Schwierigkeiten bei Ausgabe von KreisObjekten in Array
Hallo,
ich versuche mich an einer Hausaufgabe. Ich habe in einem Applet Kreis-Objekte in einem Array gespeichert und möchte diese dann mittel java.awt.Graphics ausgeben: Es solle mehrere Kreise entstehen, die dann eine Röhre bilden.( dewegen die Erhöhung des Delta: x-koord, y-koord, radius)
In der Methode zeichne ist definiert:
g.drawOval(x-radius,y-radius,2*radius,2*radius);
Beim compiliren bekomme ich die Fehlermeldung KreisApplet.java:23:13: array required, but Kreis found
Kann man ein Array überhaupt auf diese Art und Weise ausgeben? Vielen Dank!
Java:
public class KreisApplet extends java.applet.Applet
{
Kreis kreise;
public void init()
{
int delta = 0;
int kreise_max = 20;
Kreis[] kreise = new Kreis[20];
for(int i = 0; i < kreise_max; i++) {
kreise[i] = new Kreis(100+delta,100+delta,50+delta);
delta++;
} // end of while
}
public void paint(java.awt.Graphics g)
{
for(int i=0; i<kreise.length;; i++){
kreise[i].zeichne(g);
}
}
}
public class Kreis extends Figur
{
int radius;
public final double PI = 3.14159;
private static int kreis_zaehler = 0;
public Kreis(int x, int y, int radius)
{
this.x = x;
this.y = y;
this.radius = radius;
kreis_zaehler++;
}
public String toString() {
return "Kreis - Mittelpunkt "+x+"/"+y+", Radius "+radius;
}
public void set_radius(int wert) {
radius = wert;
}
public int get_radius() {
return radius;
}
public double get_umfang() {
return 2 * radius * PI;
}
public double get_flaeche(){
return radius * radius * PI;
}
public boolean bewege_check_screen(int delta_x, int delta_y) {
x += delta_x;
y += delta_y;
if (x+radius < 1024 & y+radius < 768 & x-radius > 0 & y-radius > 0) {
return true;
} // end of if
else { return false; } // end of if-else
}
public void skaliere(int rad) {
this.radius += rad;
}
public static int get_kreis_zaehler() {
return kreis_zaehler;
}
public void zeichne(java.awt.Graphics g) {
g.drawOval(x-radius,y-radius,2*radius,2*radius);
}
}
Ist der Aufruf kreise.zeichne(g); so wohldefiniert?
Nach meinem Verständnis müsste man das so schreiben!?
Ja, das ist mir schon auch aufgefallen. Ich find eben in meinen Unterlagen keinen Hinweis wie der Methodenaufruf wohlgeformt aussieht?? Bezüglich dem iterieren über in Arrays gespeicherten Objekten hab ich mit google auch nix gefunden.
edit: Ahhhh, ich sehs: die Deklaration Kreis[] kreise = new Kreis[20]; kommt vor init(); und Kreis kreis; ist natürlich Quatsch! Ja, ein Array kann ja nicht einfach deklariert werden, ohne, dass die Länge definiert ist.