Grafik erstellen und in Frame einfügen

Status
Nicht offen für weitere Antworten.

Arvid

Mitglied
Hallo,

mein Programm zeigt mir einen Frame mit der Mandelbrotmenge, an die ich per Mausklick digital ran- und rauszoomen kann.

Mein Problem ist dass der Frame pro Zeichnung ca 3 sekunden braucht bis das komplette bild angezeigt wird, also würde ich ihn gerne erst irgendwo im hintergrund oder einer externen datei zeichnen lassen und ihn sobald er mit zeichnen fertig ist in meinen frame einfügen, sodass er dann wenn ich wieder ran - oder rauszoome einfach so bleibt wie er ist bis das neue bild im hintergrund gezeichnet ist und somit das alte ersetzen kann...
weil das nervt schon wenn sich die ganze zeit beim zoomen das bild von links nach rechts aufbaut und außerdem ist es bestimmt auch schneller wenn sich das bild im hintergrund aufbaut vermute ich mal

Java:
package de.straube.Tests;


import java.awt.Color;
import java.awt.Event;
import java.awt.Frame;
import java.awt.Graphics;

public class Mandelbrotmenge
    extends Frame
{

    /**
     * 
     * 
     */
    private static final long serialVersionUID = 1L;

    int MAX_COUNTER = 200;

    double amin = -1.5;
    double amax = 0.5;
    double bmin = -1;
    double bmax = 1;

    int xOffset = 0;
    int yOffset = 30;
    int counter = 0;


    public static void main(String arguments[])
    {
        Mandelbrotmenge frame = new Mandelbrotmenge();
        frame.setLocation(100, 100);
        frame.setVisible(true);
        frame.setSize(800, 800);
    }


    Mandelbrotmenge()
    {
        super("Mandelbrotmenge");
    }


    public boolean mouseUp(Event e, int x, int y)
    {
        if (e.modifiers == 0)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da / 2;
            amax = a + da / 2;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db / 2;
            bmax = b + db / 2;

            this.update(this.getGraphics());
        }
        if (e.modifiers == 4)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da * 2;
            amax = a + da * 2;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db * 2;
            bmax = b + db * 2;

            this.update(this.getGraphics());
        }
        if (e.modifiers == 1)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da;
            amax = a + da;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db;
            bmax = b + db;

            this.update(this.getGraphics());
        }
        return true;
    }


    public void paint(Graphics bs)
    {
        int zaehler;

        int ysize = this.getSize().height - 35;
        int xsize = this.getSize().width - 5;

        double dsx = (amax - amin) / xsize;
        double dsy = (bmax - bmin) / ysize;

        double a = amin;
        for (int s = 0; s <= xsize; s++ )
        {
            double b = bmin;
            for (int r = 0; r <= ysize; r++ )
            {
                zaehler = berechnePunkt(a, b);
                bs.setColor(ermittleFarbe(zaehler));
                bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                b = b + dsy;
            }
            a = a + dsx;
        }
    }


    private int berechnePunkt(double a, double b)
    {
        int zaehler = 0;
        double x = 0;
        double y = 0;
        double xx = 0;
        double squareRoot = 0;

        while (true)
        {
            squareRoot = Math.sqrt(x * x + y * y);
            if (squareRoot >= 3)
                break;

            zaehler++ ;
            if (zaehler == MAX_COUNTER)
                break;

            xx = x * x - y * y + a;
            y = 2 * x * y + b;
            x = xx;
        }
        // Ende Berechnung eines Punktes *************************
        return zaehler;
    }


    private Color ermittleFarbe(int zaehler)
    {
        if (zaehler == MAX_COUNTER)
        {
            return Color.black;
        }
        else if (zaehler < 4)
        {
            return Color.magenta;
        }
        else if (zaehler == 5)
        {
            return Color.pink;
        }
        else if (zaehler == 6)
        {
            return Color.blue;
        }
        else if (zaehler == 7)
        {
            return Color.red;
        }
        else if (zaehler == 8)
        {
            return Color.orange;
        }
        else if (zaehler == 9)
        {
            return Color.cyan;
        }
        else if (zaehler == 10)
        {
            return Color.red;
        }
        else if (zaehler <= 20)
        {
            return Color.green;
        }
        else if (zaehler <= 30)
        {
            return Color.lightGray;
        }
        else if (zaehler <= 40)
        {
            return Color.blue;
        }
        else if (zaehler <= 50)
        {
            return Color.yellow;
        }
        else if (zaehler <= 60)
        {
            return Color.magenta;
        }
        else if (zaehler <= 70)
        {
            return Color.gray;
        }
        else if (zaehler <= 80)
        {
            return Color.orange;
        }
        else if (zaehler <= 90)
        {
            return Color.white;
        }
        else if (zaehler <= 100)
        {
            return Color.DARK_GRAY;
        }
        else if (zaehler <= 110)
        {
            return Color.ORANGE;
        }
        else if (zaehler <= 120)
        {
            return Color.YELLOW;
        }
        else if (zaehler <= 130)
        {
            return Color.MAGENTA;
        }
        else if (zaehler <= 140)
        {
            return Color.GREEN;
        }
        else if (zaehler <= 150)
        {
            return Color.PINK;
        }
        else if (zaehler <= 160)
        {
            return Color.orange;
        }
        else if (zaehler <= 170)
        {
            return Color.blue;
        }
        else if (zaehler <= 180)
        {
            return Color.darkGray;
        }
        else if (zaehler <= 190)
        {
            return Color.LIGHT_GRAY;
        }
        else if (zaehler <= 200) { return Color.green; }
        return Color.yellow;
    }
}

vielen dank im vorraus
 

Arvid

Mitglied
ich bin übrigens totaler Java anfänger also bitte nicht so kompliziert machen
Das programm hab ich fast zur hälfte von anderen quellcodes
 

Ein Keks

Bekanntes Mitglied
benutzt swing statt awt dann sollte das problem nicht auftreten da swing double-buffering besitz. du müsstest also statt von einem java.awt.frame ein ein javax.swing.JFrame erben. darauf addest du ein JPanel und überschreibst dessen paintComponent() methode also ungefähr so:
Java:
this.add(new JPanel(){
@Override
 public void painComponent(Graphics bs)
    {
        super.paintComponent();
        int zaehler;
 
        int ysize = this.getSize().height - 35;
        int xsize = this.getSize().width - 5;
 
        double dsx = (amax - amin) / xsize;
        double dsy = (bmax - bmin) / ysize;
 
        double a = amin;
        for (int s = 0; s <= xsize; s++ )
        {
            double b = bmin;
            for (int r = 0; r <= ysize; r++ )
            {
                zaehler = berechnePunkt(a, b);
                bs.setColor(ermittleFarbe(zaehler));
                bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                b = b + dsy;
            }
            a = a + dsx;
        }
    }
});

zum code an sich sag ich mal nix...
aber guck dir am besten mal folgenden link an:insel
 

Arvid

Mitglied
hmm also danke erstmal aber ich weiß nicht genau was du meinst, wenn ich
Java:
    public void paint(Graphics bs)
    {
        int zaehler;

        int ysize = this.getSize().height - 35;
        int xsize = this.getSize().width - 5;

        double dsx = (amax - amin) / xsize;
        double dsy = (bmax - bmin) / ysize;

        double a = amin;
        for (int s = 0; s <= xsize; s++ )
        {
            double b = bmin;
            for (int r = 0; r <= ysize; r++ )
            {
                zaehler = berechnePunkt(a, b);
                bs.setColor(ermittleFarbe(zaehler));
                bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                b = b + dsy;
            }
            a = a + dsx;
        }
    }
mit deinem code
Java:
this.add(new JPanel(){
@Override
 public void painComponent(Graphics bs)
    {
        super.paintComponent();
        int zaehler;
 
        int ysize = this.getSize().height - 35;
        int xsize = this.getSize().width - 5;
 
        double dsx = (amax - amin) / xsize;
        double dsy = (bmax - bmin) / ysize;
 
        double a = amin;
        for (int s = 0; s <= xsize; s++ )
        {
            double b = bmin;
            for (int r = 0; r <= ysize; r++ )
            {
                zaehler = berechnePunkt(a, b);
                bs.setColor(ermittleFarbe(zaehler));
                bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                b = b + dsy;
            }
            a = a + dsx;
        }
    }
});
ersetze kommen mir erstmal 3 fehlermeldungen ohne lösungsvorschläge und da ich ziemlicher anfänger bin kann ich nicht viel damit anfangen :(

1. fehler direkt über deinem code bei } (Syntax error)
2. fehler bei JPanel (JPanel cannot be resolved to a type
3. felher unten beim ; (Syntax error)

oder soll ich das garnicht ersetzen sondern nur irgendwie zwischen rein quetschen?

danke für die hilfe :)
 

Arvid

Mitglied
ups :oops:

also ich habs jetzt korrigiert und habe jetzt auch alles ohne fehlermeldungen aber mir erscheint jetzt nur ein leerer frame!?! ???:L

Hier was jetzt drinsteht:
Java:
    public void paint(Graphics bs)
    {
        this.add(new JPanel(){
            /**
             * 
             */
            private static final long serialVersionUID = 1L;

            @Override
             public void paintComponent(Graphics bs)
                {
                    super.paintComponent(bs);
                    int zaehler;
             
                    int ysize = this.getSize().height - 35;
                    int xsize = this.getSize().width - 5;
             
                    double dsx = (amax - amin) / xsize;
                    double dsy = (bmax - bmin) / ysize;
             
                    double a = amin;
                    for (int s = 0; s <= xsize; s++ )
                    {
                        double b = bmin;
                        for (int r = 0; r <= ysize; r++ )
                        {
                            zaehler = berechnePunkt(a, b);
                            bs.setColor(ermittleFarbe(zaehler));
                            bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                            b = b + dsy;
                        }
                        a = a + dsx;
                    }
                }
            });
    }
 

Ein Keks

Bekanntes Mitglied
das kommt nicht in die paint() methode sondern einfach in die klasse anstatt der paint() methode

hab ich echt painComponent geschrieben? :oops:
 

Arvid

Mitglied
tut mir echt leid dass ichs immer noch nicht hab ich muss euch ja solangsam bestimmt echt auf die nerven gehen :oops:

also ich hab jetzt:
Java:
    this.add(new JPanel(){
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
         public void paintComponent(Graphics bs)
            {
                super.paintComponent(bs);
                int zaehler;
         
                int ysize = this.getSize().height - 35;
                int xsize = this.getSize().width - 5;
         
                double dsx = (amax - amin) / xsize;
                double dsy = (bmax - bmin) / ysize;
         
                double a = amin;
                for (int s = 0; s <= xsize; s++ )
                {
                    double b = bmin;
                    for (int r = 0; r <= ysize; r++ )
                    {
                        zaehler = berechnePunkt(a, b);
                        bs.setColor(ermittleFarbe(zaehler));
                        bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                        b = b + dsy;
                    }
                    a = a + dsx;
                }
            }
        });
und bekomme trotzdem noch fehler mit } über

this.add(new JPanel(){ (Syntax error on token }, delete this token)

und

ganz unten beim ; (Syntax error, insert "}" to complete MethodBody)

aber egal ob ich das so mache wie es dasteht oder ob ich was anderes versuche, dann kommen immer irgendwo andere fehler... ich check das grad echt nicht :(
 

Arvid

Mitglied
ok tut mir leid ich habs! hätte einfach vor das ganze ein { und danach ein } machen müssen ich volldepp aber schneller laden und vorallem irgendwie im hintergrund laden so dass sich da nicht immer das blöde bild vor meinen augen neu aufbauen muss tuts leider immer noch nicht ???:L
 

Ein Keks

Bekanntes Mitglied
erbst die klasse vllt noch von Frame oda hast du das schon auf JFrame umgeändert?

dir muss nix leidtun und du nervst auch niemanden das forum is schließlich da um zu helfen ;)
 

Arvid

Mitglied
jop, genau das war der fehler ^^
jetzt läd das bild im hintergrund :)
ist zwar immer noch nicht schneller aber kann man wohl nix machen!
Danke euch für die Hilfe
 

Arvid

Mitglied
Also ich hab noch ein Problem, es läuft jetzt zwar alles wies soll was den frame und das bild angeht nur seitdem ich das in JFrame geändert hab geht das ran- und rauszoomen mit meinen Mausklickbefehlen nichtmehr und ich weiß nicht wie ich das problem lösen soll :(
hab zwar schon ein paar dinge versucht leider aber ohne erfolg

der code sieht jetzt im moment so aus:
Java:
package de.straube.Tests;


import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Mandelbrotmenge
    extends JFrame
{
    /**
     * 
     * 
     */
    
    private static final long serialVersionUID = 1L;

    int MAX_COUNTER = 200;

    double amin = -1.5;
    double amax = 0.5;
    double bmin = -1;
    double bmax = 1;

    int xOffset = 0;
    int yOffset = 30;
    int counter = 0;


    public static void main(String arguments[])
    {
        Mandelbrotmenge frame = new Mandelbrotmenge();
        frame.setVisible(true);
        frame.setSize(900, 900);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int left = (d.width - 900) / 2;
        int top = (d.height - 900) / 2;
        frame.setLocation(left, top);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    Mandelbrotmenge()
    {
        super("Mandelbrotmenge");
    }

    public boolean mouseUp(Event e, int x, int y)
    {
        if (e.modifiers == 0)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da / 2;
            amax = a + da / 2;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db / 2;
            bmax = b + db / 2;

            this.update(this.getGraphics());
        }
        if (e.modifiers == 4)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da * 2;
            amax = a + da * 2;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db * 2;
            bmax = b + db * 2;

            this.update(this.getGraphics());
        }
        if (e.modifiers == 1)
        {
            double width = this.getSize().width;
            double height = this.getSize().height;

            double qa = x / width;
            double da = amax - amin;
            double a = amin + da * qa;
            // neuer Bereich ist nur halb so groß
            da = da / 2;
            // neues amin = a - die Hälfte des neuen Bereichs
            amin = a - da;
            amax = a + da;

            double qb = y / height;
            double db = bmax - bmin;
            double b = bmin + db * qb;
            // neue Bereich ist nur halb so groß
            db = db / 2;
            // neues bmin = b - die Hälfte des neuen Bereichs
            bmin = b - db;
            bmax = b + db;

            this.update(this.getGraphics());
        }
        return true;
    }

    {
        this.add(new JPanel()
        {
            /**
             * 
             */
            private static final long serialVersionUID = 1L;

            @Override
            public void paintComponent(Graphics bs)
            {
                super.paintComponent(bs);
                int zaehler;

                int ysize = this.getSize().height - 30;
                int xsize = this.getSize().width;

                double dsx = (amax - amin) / xsize;
                double dsy = (bmax - bmin) / ysize;

                double a = amin;
                for (int s = 0; s <= xsize; s++ )
                {
                    double b = bmin;
                    for (int r = 0; r <= ysize; r++ )
                    {
                        zaehler = berechnePunkt(a, b);
                        bs.setColor(ermittleFarbe(zaehler));
                        bs.drawLine(s + xOffset, r + yOffset, s + xOffset, r + yOffset);
                        b = b + dsy;
                    }
                    a = a + dsx;
                }
            }
        });
    }


    private int berechnePunkt(double a, double b)
    {
        int zaehler = 0;
        double x = 0;
        double y = 0;
        double xx = 0;
        double squareRoot = 0;

        while (true)
        {
            squareRoot = Math.sqrt(x * x + y * y);
            if (squareRoot >= 3)
                break;

            zaehler++ ;
            if (zaehler == MAX_COUNTER)
                break;

            xx = x * x - y * y + a;
            y = 2 * x * y + b;
            x = xx;
        }
        // Ende Berechnung eines Punktes *************************
        return zaehler;
    }


    private Color ermittleFarbe(int zaehler)
    {
        if (zaehler == MAX_COUNTER)
        {
            return Color.black;
        }
        else if (zaehler == 2)
        {
            return Color.blue;
        }
        else if (zaehler == 3)
        {
            return Color.green;
        }
        else if (zaehler == 4)
        {
            return Color.magenta;
        }
        else if (zaehler == 5)
        {
            return Color.pink;
        }
        else if (zaehler == 6)
        {
            return Color.blue;
        }
        else if (zaehler == 7)
        {
            return Color.red;
        }
        else if (zaehler == 8)
        {
            return Color.orange;
        }
        else if (zaehler == 9)
        {
            return Color.cyan;
        }
        else if (zaehler == 10)
        {
            return Color.red;
        }
        else if (zaehler == 11)
        {
            return Color.green;
        }
        else if (zaehler == 12)
        {
            return Color.cyan;
        }
        else if (zaehler == 13)
        {
            return Color.green;
        }
        else if (zaehler == 14)
        {
            return Color.yellow;
        }
        else if (zaehler == 15)
        {
            return Color.LIGHT_GRAY;
        }
        else if (zaehler == 16)
        {
            return Color.blue;
        }
        else if (zaehler == 17)
        {
            return Color.green;
        }
        else if (zaehler == 18)
        {
            return Color.orange;
        }
        else if (zaehler == 19)
        {
            return Color.DARK_GRAY;
        }
        else if (zaehler == 20)
        {
            return Color.green;
        }
        else if (zaehler == 21)
        {
            return Color.orange;
        }
        else if (zaehler == 22)
        {
            return Color.red;
        }
        else if (zaehler == 23)
        {
            return Color.green;
        }
        else if (zaehler == 24)
        {
            return Color.yellow;
        }
        else if (zaehler == 25)
        {
            return Color.red;
        }
        else if (zaehler == 26)
        {
            return Color.blue;
        }
        else if (zaehler == 27)
        {
            return Color.green;
        }
        else if (zaehler == 28)
        {
            return Color.orange;
        }
        else if (zaehler == 29)
        {
            return Color.blue;
        }
        else if (zaehler == 30)
        {
            return Color.lightGray;
        }
        else if (zaehler == 31)
        {
            return Color.green;
        }
        else if (zaehler == 32)
        {
            return Color.red;
        }
        else if (zaehler == 33)
        {
            return Color.magenta;
        }
        else if (zaehler == 34)
        {
            return Color.yellow;
        }
        else if (zaehler == 35)
        {
            return Color.green;
        }
        else if (zaehler == 36)
        {
            return Color.blue;
        }
        else if (zaehler == 37)
        {
            return Color.yellow;
        }
        else if (zaehler == 38)
        {
            return Color.orange;
        }
        else if (zaehler == 39)
        {
            return Color.green;
        }
        else if (zaehler == 40)
        {
            return Color.blue;
        }
        else if (zaehler == 41)
        {
            return Color.yellow;
        }
        else if (zaehler == 42)
        {
            return Color.red;
        }
        else if (zaehler == 43)
        {
            return Color.green;
        }
        else if (zaehler == 44)
        {
            return Color.yellow;
        }
        else if (zaehler == 45)
        {
            return Color.green;
        }
        else if (zaehler == 46)
        {
            return Color.blue;
        }
        else if (zaehler == 47)
        {
            return Color.red;
        }
        else if (zaehler == 48)
        {
            return Color.orange;
        }
        else if (zaehler == 49)
        {
            return Color.green;
        }
        else if (zaehler == 50)
        {
            return Color.yellow;
        }
        else if (zaehler == 51)
        {
            return Color.green;
        }
        else if (zaehler == 52)
        {
            return Color.magenta;
        }
        else if (zaehler == 53)
        {
            return Color.blue;
        }
        else if (zaehler == 54)
        {
            return Color.yellow;
        }
        else if (zaehler == 55)
        {
            return Color.green;
        }
        else if (zaehler == 56)
        {
            return Color.blue;
        }
        else if (zaehler == 57)
        {
            return Color.green;
        }
        else if (zaehler == 58)
        {
            return Color.pink;
        }
        else if (zaehler == 59)
        {
            return Color.green;
        }
        else if (zaehler == 60)
        {
            return Color.magenta;
        }
        else if (zaehler == 61)
        {
            return Color.blue;
        }
        else if (zaehler == 62)
        {
            return Color.red;
        }
        else if (zaehler == 63)
        {
            return Color.magenta;
        }
        else if (zaehler == 64)
        {
            return Color.yellow;
        }
        else if (zaehler == 65)
        {
            return Color.blue;
        }
        else if (zaehler == 66)
        {
            return Color.pink;
        }
        else if (zaehler == 67)
        {
            return Color.blue;
        }
        else if (zaehler == 68)
        {
            return Color.orange;
        }
        else if (zaehler == 69)
        {
            return Color.green;
        }
        else if (zaehler == 70)
        {
            return Color.gray;
        }
        else if (zaehler == 71)
        {
            return Color.blue;
        }
        else if (zaehler == 72)
        {
            return Color.red;
        }
        else if (zaehler == 73)
        {
            return Color.lightGray;
        }
        else if (zaehler == 74)
        {
            return Color.yellow;
        }
        else if (zaehler == 75)
        {
            return Color.blue;
        }
        else if (zaehler == 76)
        {
            return Color.orange;
        }
        else if (zaehler == 77)
        {
            return Color.blue;
        }
        else if (zaehler == 78)
        {
            return Color.orange;
        }
        else if (zaehler == 79)
        {
            return Color.blue;
        }
        else if (zaehler == 80)
        {
            return Color.gray;
        }
        else if (zaehler == 81)
        {
            return Color.yellow;
        }
        else if (zaehler == 82)
        {
            return Color.red;
        }
        else if (zaehler == 83)
        {
            return Color.green;
        }
        else if (zaehler == 84)
        {
            return Color.yellow;
        }
        else if (zaehler == 85)
        {
            return Color.blue;
        }
        else if (zaehler == 86)
        {
            return Color.red;
        }
        else if (zaehler == 87)
        {
            return Color.blue;
        }
        else if (zaehler == 88)
        {
            return Color.orange;
        }
        else if (zaehler == 89)
        {
            return Color.blue;
        }
        else if (zaehler == 90)
        {
            return Color.white;
        }
        else if (zaehler == 91)
        {
            return Color.blue;
        }
        else if (zaehler == 92)
        {
            return Color.red;
        }
        else if (zaehler == 93)
        {
            return Color.white;
        }
        else if (zaehler == 94)
        {
            return Color.yellow;
        }
        else if (zaehler == 95)
        {
            return Color.blue;
        }
        else if (zaehler == 96)
        {
            return Color.blue;
        }
        else if (zaehler == 97)
        {
            return Color.blue;
        }
        else if (zaehler == 98)
        {
            return Color.orange;
        }
        else if (zaehler == 99)
        {
            return Color.blue;
        }
        else if (zaehler == 100)
        {
            return Color.DARK_GRAY;
        }
        else if (zaehler == 101)
        {
            return Color.yellow;
        }
        else if (zaehler == 102)
        {
            return Color.red;
        }
        else if (zaehler == 103)
        {
            return Color.green;
        }
        else if (zaehler == 104)
        {
            return Color.yellow;
        }
        else if (zaehler == 105)
        {
            return Color.red;
        }
        else if (zaehler == 106)
        {
            return Color.blue;
        }
        else if (zaehler == 107)
        {
            return Color.green;
        }
        else if (zaehler == 108)
        {
            return Color.orange;
        }
        else if (zaehler == 109)
        {
            return Color.red;
        }
        else if (zaehler == 110)
        {
            return Color.white;
        }
        else if (zaehler == 111)
        {
            return Color.red;
        }
        else if (zaehler == 112)
        {
            return Color.blue;
        }
        else if (zaehler == 113)
        {
            return Color.red;
        }
        else if (zaehler == 114)
        {
            return Color.yellow;
        }
        else if (zaehler == 115)
        {
            return Color.red;
        }
        else if (zaehler == 116)
        {
            return Color.blue;
        }
        else if (zaehler == 117)
        {
            return Color.yellow;
        }
        else if (zaehler == 118)
        {
            return Color.orange;
        }
        else if (zaehler == 119)
        {
            return Color.red;
        }
        else if (zaehler == 120)
        {
            return Color.YELLOW;
        }
        else if (zaehler == 121)
        {
            return Color.red;
        }
        else if (zaehler == 122)
        {
            return Color.orange;
        }
        else if (zaehler == 123)
        {
            return Color.red;
        }
        else if (zaehler == 124)
        {
            return Color.yellow;
        }
        else if (zaehler == 125)
        {
            return Color.red;
        }
        else if (zaehler == 126)
        {
            return Color.blue;
        }
        else if (zaehler == 127)
        {
            return Color.gray;
        }
        else if (zaehler == 128)
        {
            return Color.orange;
        }
        else if (zaehler == 129)
        {
            return Color.red;
        }
        else if (zaehler == 130)
        {
            return Color.MAGENTA;
        }
        else if (zaehler == 131)
        {
            return Color.red;
        }
        else if (zaehler == 132)
        {
            return Color.blue;
        }
        else if (zaehler == 133)
        {
            return Color.red;
        }
        else if (zaehler == 134)
        {
            return Color.yellow;
        }
        else if (zaehler == 135)
        {
            return Color.pink;
        }
        else if (zaehler == 136)
        {
            return Color.blue;
        }
        else if (zaehler == 137)
        {
            return Color.red;
        }
        else if (zaehler == 138)
        {
            return Color.orange;
        }
        else if (zaehler == 139)
        {
            return Color.magenta;
        }
        else if (zaehler == 140)
        {
            return Color.GREEN;
        }
        else if (zaehler == 141)
        {
            return Color.red;
        }
        else if (zaehler == 142)
        {
            return Color.green;
        }
        else if (zaehler == 143)
        {
            return Color.red;
        }
        else if (zaehler == 144)
        {
            return Color.yellow;
        }
        else if (zaehler == 145)
        {
            return Color.red;
        }
        else if (zaehler == 146)
        {
            return Color.blue;
        }
        else if (zaehler == 147)
        {
            return Color.red;
        }
        else if (zaehler == 148)
        {
            return Color.orange;
        }
        else if (zaehler == 149)
        {
            return Color.yellow;
        }
        else if (zaehler == 150)
        {
            return Color.PINK;
        }
        else if (zaehler == 151)
        {
            return Color.red;
        }
        else if (zaehler == 152)
        {
            return Color.green;
        }
        else if (zaehler == 153)
        {
            return Color.lightGray;
        }
        else if (zaehler == 154)
        {
            return Color.yellow;
        }
        else if (zaehler == 155)
        {
            return Color.red;
        }
        else if (zaehler == 156)
        {
            return Color.blue;
        }
        else if (zaehler == 157)
        {
            return Color.red;
        }
        else if (zaehler == 158)
        {
            return Color.orange;
        }
        else if (zaehler == 159)
        {
            return Color.red;
        }
        else if (zaehler == 160)
        {
            return Color.pink;
        }
        else if (zaehler == 161)
        {
            return Color.red;
        }
        else if (zaehler == 162)
        {
            return Color.orange;
        }
        else if (zaehler == 163)
        {
            return Color.red;
        }
        else if (zaehler == 164)
        {
            return Color.yellow;
        }
        else if (zaehler == 165)
        {
            return Color.red;
        }
        else if (zaehler == 166)
        {
            return Color.blue;
        }
        else if (zaehler == 167)
        {
            return Color.yellow;
        }
        else if (zaehler == 168)
        {
            return Color.orange;
        }
        else if (zaehler == 169)
        {
            return Color.red;
        }
        else if (zaehler == 170)
        {
            return Color.green;
        }
        else if (zaehler == 171)
        {
            return Color.red;
        }
        else if (zaehler == 172)
        {
            return Color.green;
        }
        else if (zaehler == 173)
        {
            return Color.red;
        }
        else if (zaehler == 174)
        {
            return Color.yellow;
        }
        else if (zaehler == 175)
        {
            return Color.red;
        }
        else if (zaehler == 176)
        {
            return Color.blue;
        }
        else if (zaehler == 177)
        {
            return Color.red;
        }
        else if (zaehler == 178)
        {
            return Color.orange;
        }
        else if (zaehler == 179)
        {
            return Color.red;
        }
        else if (zaehler == 180)
        {
            return Color.darkGray;
        }
        else if (zaehler == 181)
        {
            return Color.red;
        }
        else if (zaehler == 182)
        {
            return Color.pink;
        }
        else if (zaehler == 183)
        {
            return Color.red;
        }
        else if (zaehler == 184)
        {
            return Color.green;
        }
        else if (zaehler == 185)
        {
            return Color.magenta;
        }
        else if (zaehler == 186)
        {
            return Color.blue;
        }
        else if (zaehler == 187)
        {
            return Color.red;
        }
        else if (zaehler == 188)
        {
            return Color.orange;
        }
        else if (zaehler == 189)
        {
            return Color.green;
        }
        else if (zaehler == 190)
        {
            return Color.LIGHT_GRAY;
        }
        else if (zaehler == 191)
        {
            return Color.red;
        }
        else if (zaehler == 192)
        {
            return Color.blue;
        }
        else if (zaehler == 193)
        {
            return Color.red;
        }
        else if (zaehler == 194)
        {
            return Color.yellow;
        }
        else if (zaehler == 195)
        {
            return Color.red;
        }
        else if (zaehler == 196)
        {
            return Color.blue;
        }
        else if (zaehler == 197)
        {
            return Color.red;
        }
        else if (zaehler == 198)
        {
            return Color.orange;
        }
        else if (zaehler == 199)
        {
            return Color.red;
        }
        return Color.yellow;
    }
}
 

Ein Keks

Bekanntes Mitglied
das problem liegt daran das die methode
Java:
public boolean mouseUp(Event e, int x, int y){...}
deprecated also veraltet ist und von swing anscheinend nicht mehr unterstützt wird. Wenn du stattdessen einen MouseListener verwendest funzt es.
die mouseUp methode löschen und folgenden code in den construktor:

Java:
addMouseListener(new MouseAdapter(){
	  @Override
	  public void mouseClicked(MouseEvent e){
	        double width = getSize().width;
	        double height = getSize().height;
	            
	        double qa = e.getX() / width;
	        double da = amax - amin;
	        double a = amin + da * qa;
					
	        double qb = e.getY() / height;
	        double db = bmax - bmin;
	        double b = bmin + db * qb;

		if(e.getButton() == MouseEvent.BUTTON1){
			// neuer Bereich ist nur halb so groß
			da = da / 2;
			amin = a - da / 2;
			amax = a + da / 2;

			db = db / 2;
			bmin = b - db / 2;
			bmax = b + db / 2;
		}
		if(e.getButton() == MouseEvent.BUTTON3){
			// neuer Bereich ist doppelt so groß
			da = da / 2;
			amin = a - da * 2;
			amax = a + da * 2;

			db = db / 2;
			bmin = b - db * 2;
			bmax = b + b*2; 							
		}
		if(e.getButton() == MouseEvent.BUTTON2){
			// neuer Bereich ist ? so groß
			da = da / 2;
			amin = a - da;
			amax = a + da;

			db = db / 2;
			bmin = b - db;
			bmax = b +db;								
		}
		repaint();
	}
});

Anmerkung:
in der main methode sollte eigentlich nur
new Mandelbrotmenge();
stehen der rest gehört in den construktor wobei setVisible() als letztes aufgerufen werden sollte
setSize(left, top); und setLocation(900,900); kannst du auch noch zu setBounds(left, top, 900, 900); zusammenfassen
dessweiteren sollte eigentlich in der paint / paintComponent methode nur gezeichnet werden und keine logik abgearbeitet weden
aber du hast ja selbst gesagt das du noch totaler anfänger bist also ist das noch verzeihbar ;)

edit: vllt. noch den weißen rand oben entfernen schließlich wird es jetzt auf dem JPanel und nicht mehr auf einem frame gezeichnet, es wird also nix mehr durch den Balken verdeckt ;)
 

Arvid

Mitglied
Super :) funktioniert alles wieder
ich glaube jetzt kann ich das thema auch endlich schließen, habe keine Probleme mehr

Und danke nochmal für deine Hilfe ;)
 

Leroy42

Top Contributor
das problem liegt daran das die methode
Java:
public boolean mouseUp(Event e, int x, int y){...}
deprecated also veraltet ist und von swing anscheinend nicht mehr unterstützt wird.

:shock:

deprecated bedeutet doch nicht, daß sie durch Swing nicht mehr aufgerufen wird.

Oder verstehe ich da jetzt etwas fallig völsch? ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8 Grafik erstellen Java Basics - Anfänger-Themen 6
M ausm String eine Grafik erstellen Java Basics - Anfänger-Themen 4
M Grafik erstellen Java Basics - Anfänger-Themen 8
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
J "Tetris" - Problem bei der Grafik Java Basics - Anfänger-Themen 5
R Grafik in CSV einbinden Java Basics - Anfänger-Themen 2
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
D aufbauende Grafik Java Basics - Anfänger-Themen 13
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
G Bei Mouseover Grafik ändern, gutes Vorgehen gesucht Java Basics - Anfänger-Themen 0
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
L Grafik Kollision Detektierung Java Basics - Anfänger-Themen 4
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
S Grafik löschen Java Basics - Anfänger-Themen 10
C Grafik einsperren Java Basics - Anfänger-Themen 2
E Quelltext für Grafik verschwindet Java Basics - Anfänger-Themen 9
S Grafik verschwindet Java Basics - Anfänger-Themen 8
O Java Grafik-Programmierung? Java Basics - Anfänger-Themen 16
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
B Grafik zeichnen Java Basics - Anfänger-Themen 25
S Teilstücke aus einer Grafik extrahieren Java Basics - Anfänger-Themen 2
Maxim6394 Grafik rotieren Java Basics - Anfänger-Themen 11
S Probleme mit JMenü und Grafik Java Basics - Anfänger-Themen 2
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
R Hilfe bei erster Grafik Java Basics - Anfänger-Themen 2
A Gui Grafik Java Basics - Anfänger-Themen 4
maddin86 Grafik in .jar einbetten Java Basics - Anfänger-Themen 3
M import einer Grafik aus .jar funktioniert nicht Java Basics - Anfänger-Themen 6
M Grafik export in ein Jar File Java Basics - Anfänger-Themen 5
O Grafik in Frame laden Java Basics - Anfänger-Themen 9
H Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
H Grafik auf einem JPanel bewegen. Java Basics - Anfänger-Themen 7
F JLabel mit Grafik füllen Java Basics - Anfänger-Themen 3
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
F Zugriffsproblem - Funktion von Grafik trennen Java Basics - Anfänger-Themen 6
H HtmlUnit - Grafik speichern Java Basics - Anfänger-Themen 2
R Taste gedrückt = Grafik zeichen ?!? Java Basics - Anfänger-Themen 8
D PNG-Grafik erzeugen Java Basics - Anfänger-Themen 8
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
A Grafik 2d Objekte farblich ausfüllen Java Basics - Anfänger-Themen 15
C Grafik einbinden Java Basics - Anfänger-Themen 11
F Größe von Grafik-Containern verschieben Java Basics - Anfänger-Themen 2
J Unterschied zwischen 2 Grafik Methoden Java Basics - Anfänger-Themen 2
M Grafik neuzeichnen Java Basics - Anfänger-Themen 8
M Grafik als Resource laden? Java Basics - Anfänger-Themen 2
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
$ Inhalt von JPanel als Grafik? Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Grafik Java Basics - Anfänger-Themen 3
K Grafik abspeichern, X11 Fehlermeldung Java Basics - Anfänger-Themen 15
T Zeigerposition auf Grafik messen? Java Basics - Anfänger-Themen 5
F Grafik auf Button passt nicht Java Basics - Anfänger-Themen 1
E Grafik in bestimmtes frame einbinden . Java Basics - Anfänger-Themen 13
F Teilen einer großen Grafik Java Basics - Anfänger-Themen 2
C Clear im Grafik Editor Java Basics - Anfänger-Themen 16
C Grafik flimmert bzw. flackert bei Bewegung Java Basics - Anfänger-Themen 11
N Grafik formatieren Java Basics - Anfänger-Themen 7
E fehlermeldung bei rekursiver grafik Java Basics - Anfänger-Themen 11
M wie kombiniere ich grafik und swing-komponenten Java Basics - Anfänger-Themen 16
N Java Problem bei Grafik und OoP Java Basics - Anfänger-Themen 7
V Grafik ist nur ganz kurz sichtbar Java Basics - Anfänger-Themen 3
H Streichholzziehen - Grafik? Java Basics - Anfänger-Themen 3
M Grafik auf einem JPanel erneut darstellen Java Basics - Anfänger-Themen 3
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben