Schwierigkeiten bei Ausgabe von KreisObjekten in Array

Iago

Mitglied
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);
    }
     } 
  }
 
Wie sieht denn die Klasse Kreis aus?
Ist der Aufruf kreise.zeichne(g); so wohldefiniert?
 
Klasse Kreis:

Java:
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!?
 
Beim compiliren bekomme ich die Fehlermeldung KreisApplet.java:23:13: array required, but Kreis found
und genau das ist auch der Fall:
Java:
public class KreisApplet extends java.applet.Applet
{
  Kreis kreise;
  ...
  public void paint(java.awt.Graphics g)
  {
    ...
    kreise[i].zeichne(g);
    ...
  } 
}
 
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.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben