LazyWolf: array neu setzen...

Ich habe zwei Arrays, um ein Polygon zu zeichnen..:

public void paint(Graphics g)
  {
  int[] arx = {50,50,120,120,80,80,100,100,80,80};
  int[] ary = {170,40,40,70,70,100,100,130,130,170};
  g.drawPolygon(this.arx,this.ary,this.arx.length);
  }

Nun möchte ich direkt danach noch eins Zeichnen und dafür die gleichen Variablen (Arrays) verwenden...
Wie setze ich da nun neue Werte rein? Ich kriege es irgendwie nicht hin.

  1. Ich habe zwei Arrays, um ein Polygon zu zeichnen..:

    public void paint(Graphics g)
      {
      int[] arx = {50,50,120,120,80,80,100,100,80,80};
      int[] ary = {170,40,40,70,70,100,100,130,130,170};
      g.drawPolygon(this.arx,this.ary,this.arx.length);
      }

    Nun möchte ich direkt danach noch eins Zeichnen und dafür die gleichen Variablen (Arrays) verwenden...
    Wie setze ich da nun neue Werte rein? Ich kriege es irgendwie nicht hin.

    Hallo,
    müsste doch eigentlich funktionieren, wenn du nachdem du das erste polygon gezeichnet hast, die beiden variablen neu setzt und nochmal zeichnest:

    arx = {...}
    ary = {...}
    g.drawPolygon(this.arx,this.ary,this.arx.lenght);

    Gruß Maike

    1. Ich habe zwei Arrays, um ein Polygon zu zeichnen..:

      public void paint(Graphics g)
        {
        int[] arx = {50,50,120,120,80,80,100,100,80,80};
        int[] ary = {170,40,40,70,70,100,100,130,130,170};
        g.drawPolygon(this.arx,this.ary,this.arx.length);
        }

      Nun möchte ich direkt danach noch eins Zeichnen und dafür die gleichen Variablen (Arrays) verwenden...
      Wie setze ich da nun neue Werte rein? Ich kriege es irgendwie nicht hin.

      Hallo,
      müsste doch eigentlich funktionieren, wenn du nachdem du das erste polygon gezeichnet hast, die beiden variablen neu setzt und nochmal zeichnest:

      arx = {...}
      ary = {...}
      g.drawPolygon(this.arx,this.ary,this.arx.lenght);

      Gruß Maike

      Anscheinend nicht...

      Folgendes:

      public void paint(Graphics g)
        {
        int[] arx = {50,50,120,120,80,80,100,100,80,80};
        int[] ary = {170,40,40,70,70,100,100,130,130,170};
        g.drawPolygon(arx,ary,arx.length);

      arx = {100,50,120,120,80,80,100,100,80,80};
        ary = {170,40,40,70,70,100,100,130,130,170};
        g.drawPolygon(arx,ary,arx.length);
        }

      ...liefert ein paar Fehlermeldungen beim compilieren:

      grafik.java:27: illegal start of expression
        arx = {100,50,120,120,80,80,100,100,80,80};
                            ^
      grafik.java:28: illegal start of expression
        ary = {170,40,40,70,70,100,100,130,130,170};
                            ^
      2 errors

      1. grafik.java:27: illegal start of expression
          arx = {100,50,120,120,80,80,100,100,80,80};
                              ^
        grafik.java:28: illegal start of expression
          ary = {170,40,40,70,70,100,100,130,130,170};

        Da das durch die Formatierung hier nicht so ganz deutlich wird:

        Die ^ in den Fehlermeldungen befinden sich jeweils unter der ersten geschweiften Klammer...

        (Mit diesen Foruminternen Funktionen hier, die einen nicht posten lassen, kann man sich ja stundenlang kloppen!)

        LazyWolf

      2. grafik.java:27: illegal start of expression
          arx = {100,50,120,120,80,80,100,100,80,80};
                              ^
        grafik.java:28: illegal start of expression
          ary = {170,40,40,70,70,100,100,130,130,170};
                              ^
        2 errors

        Hallo,
        und wenn du einfach zwei neue Arrays anlegst?? Geht's dann?
        Oder müssen es unbedingt die selben sein?
        Gruß Maike

        1. Hallo,
          und wenn du einfach zwei neue Arrays anlegst?? Geht's dann?
          Oder müssen es unbedingt die selben sein?
          Gruß Maike

          Am liebsten fürde ich eine Funktion oder Methode oder wie man das nennt machen, an die ich die Array Werte übergeben kann und die dann jedesmal ein Polygon damit zeichnet.
          Ich kriege das aber alles nicht hin, weil ich neu bei Java bin und nichts wirklich geeignetes in Manuals finde.

          Wenn ich mehrere Polygone zeichnen will, wo komme ich denn da hin, wenn ich jedes Mal neue Variablen dafür nehme?!?

          Java hat schon einige Eigenarten, muss man ja mal so sagen...

          Gibt es nicht vielleicht sowas wie unset() von PHP?

          M.f.G

          1. Am liebsten fürde ich eine Funktion oder Methode oder wie man das nennt machen, an die ich die Array Werte übergeben kann und die dann jedesmal ein Polygon damit zeichnet.
            Ich kriege das aber alles nicht hin, weil ich neu bei Java bin und nichts wirklich geeignetes in Manuals finde.

            vielleicht so:

            public int[] werteSetzen (int[] array, in[] array2)
            {
             for(int i=0; i<array.length(); i++)
             {
               arx[i] = array[i];
               ary[i] = array2[i]
             }
            }

            int[] werte = {1,2,3...}
            int[] werte2 = {1,2,3...}

            werteSetzen(werte, werte2);

            hoffe das hilft,
            den code hab ich jetzt einfach mal so auswendig hingeschrieben, deswegen kann es sein, dass einige syntaxfehler drin sind... oder sonstige kleine fehler...
            leider muss ich jetzt weg und kann dir nicht weiter helfen,
            hoffe, du kriegst das hin.
            gruß maike

            1. quatsch, ich meine natürlich so:

              public void werteSetzen (int[] array, in[] array2)
              {
               for(int i=0; i<array.length(); i++)
               {
                 arx[i] = array[i];
                 ary[i] = array2[i]
               }
              }

              int[] werte = {1,2,3...}
              int[] werte2 = {1,2,3...}

              werteSetzen(werte, werte2);

              gruß maike

      3. Hi,

        ^

        grafik.java:28: illegal start of expression
          ary = {170,40,40,70,70,100,100,130,130,170};
                              ^
        2 errors

        Diese Syntax ist gemäß Spezifikation _nur_ bei der gleichzeitiger Deklaration (int[] arr = {x,x,x}) erlaubt.

        Viele Grüße,
        Martin Jung

  2. Hallo Wolf,

    Das geht so:

    arx = new int[] {0,1,2,3,4,....};

    Grüße

    Daniel

    1. hi!

      arx = new int[] {0,1,2,3,4,....};

      Ob das aber besonders sinnig ist? Denn so wird jedesmal das Array
      neu initialisiert. Wenn man das alte Array überschreiben würde (falls
      das neue genauso viele Werte enthält), hätte man wohl etwas Rechenzeit
      gespart.

      Ansonsten kann man ja gleich ein anonymes Array anlegen, indem man mit
      obiger Methode innerhalb des Funktionsaufrufs das Array initialisiert.
      Das kostet genauso viel, braucht aber keine eigenen Variablen mehr.

      bye, Frank!

      --
      Never argue with an idiot. He will lower you to his level and then
      beat you with experience.