Tortendiagramm zeichnen

Comyu

Neues Mitglied
Hallo, wir sind in der Schule gerade auf objektorentiertes Programmieren umgestiegen.
Ich möchte jetzt ein Tortendiagramm zeichnen
Das ist der Code. Allerdings geht er nicht, bitte helft mir
Bei allen werten angegeben fehlt ein abschnitt, und sowas wie 50 zu 50 geht nur wenn man es nacheinander eingibt
Wir sind in der Klasse Tortendiagramm, Jframe
g.setColor(Color.red);
endwert = (wert[0] * 360)/100;
g.fillArc(breite / 2, this.hoehe / 2, 199, 199, 0, endwert);
g.setColor(Color.green);
startwert = endwert;
endwert = (wert[1] * 360)/100;
g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
g.setColor(Color.black);
startwert = endwert;
endwert =( wert[2] * 360)/100;
g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
g.setColor(Color.white);
startwert = endwert;
endwert = (wert[3] * 360)/100;
g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
g.setColor(Color.blue);
startwert = endwert;
endwert = (wert[4] * 360)/100;
g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
 

Comyu

Neues Mitglied
Wie oben gesagt, wenn ich 5 werte eingebe werden nur 4 gezeichnet, wenn ich zb 0 50 0 50 eingebe wird garnichts gezeichnet usw... (keine error)
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tortendiagramm;

import java.awt.*;

/**
*
* @author it140009
*/
public class Tortendiagramm extends Frame {

    private int hoehe;
    private int[] wert;
    private int breite;

    public int[] getWert() {
        return wert;
    }

    public void setWert(int[] wert) {
        this.wert = wert;
    }

    public Tortendiagramm(int[] array) {

        super("add your name here");

        // Ermöglicht das Schließen des Frames
        addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowClosing(java.awt.event.WindowEvent evt) {
                System.exit(0);
            }
        });

        // Enige Fenstereigenschaften setzen
        this.setSize(400, 400);
        this.setBackground(Color.LIGHT_GRAY);
        this.setForeground(Color.BLACK);
        this.toFront();
        getGrosse();
        setWert(array);
        // Fenster anzeigen
        this.setVisible(true);
        this.toFront();
    }

    public void getGrosse() {
        hoehe = this.getSize().height - this.getInsets().top;
        breite = this.getSize().width - this.getInsets().left;
    }

    /**
     * Stellt das Fenster dar.
     * <p>
     * Diese Methode wird aufgerufen, wann immer auch das Fenster oder Teile
     * davon neu gezeichnet werden müssen. Wann das der Fall ist, unterliegt
     * meist nicht unserer Kontrolle (z.B. Wegschieben eines überdeckenden
     * Fensters) - kann aber auch von uns ausgelöst werden (repaint()).<br>
     * Es ist somit sinnvoll, hier jene Funktionalität zu verpacken, die das
     * Aussehen des Fensters bestimmt.
     * <p>
     * @param g
     */
    @Override
    public void paint(Graphics g) {
        int hoehe;
        int max = 0;
        int startwert;
        int endwert;
        int balkenbreite;
        for (int i = 0; i < 5; i++) {
            if (wert[i] > max) {
                max = wert[i];
            }
        }
        //Etwas umständlich geschrieben damit man besser Debuggen kann
        g.setColor(Color.red);
        endwert = (wert[0] * 360)/100;
        g.fillArc(breite / 2, this.hoehe / 2, 199, 199, 0, endwert);
        g.setColor(Color.green);
        startwert = endwert;
        endwert = (wert[1] * 360)/100;
        g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
        g.setColor(Color.black);
        startwert = endwert;
         endwert =( wert[2] * 360)/100;
        g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
        g.setColor(Color.white);
        startwert = endwert;
      endwert = (wert[3] * 360)/100;
        g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);
        g.setColor(Color.blue);
        startwert = endwert;
        endwert = (wert[4] * 360)/100;
        g.fillArc(breite / 2, this.hoehe / 2, 199, 199, startwert, endwert);

//x - the //x coordinate of the upper-left corner of the arc to be drawn.
        //y - the y coordinate of the upper-left corner of the arc to be drawn.
        //  width - the width of the arc to be drawn.
        //      height - the height of the arc to be drawn.
        //startAngle - the beginning angle.
//arcAngle - the angular extent of the arc, relative to the start angle.
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Habe ein svg bild, kann ich das zu svg koordinaten umrechnen, damit ich den Umriss zeichnen kann? Wenn ja wie? Allgemeine Java-Themen 1
Aboya Kugel mit Hilfe von Dreiecken rekursiv zeichnen Allgemeine Java-Themen 2
F Linie zeichnen Allgemeine Java-Themen 35
I Raute mit Rekursion "zeichnen" Allgemeine Java-Themen 7
P Zeichnen Allgemeine Java-Themen 18
S Best Practice Diagramm zeichnen Allgemeine Java-Themen 0
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
D Baum zeichnen hilfe Allgemeine Java-Themen 4
B Zeichnen einer verschiebbaren Linie Allgemeine Java-Themen 3
I 2D-Grafik Polygon mit Double Werten zeichnen Allgemeine Java-Themen 4
D Grafische Objekte zeichnen Allgemeine Java-Themen 4
E Tool/Programm zum Zeichnen von UML Diagrammen Allgemeine Java-Themen 14
F 2D-Grafik drawString (scharf zeichnen lassen) Allgemeine Java-Themen 13
J Teil eines Image/ImageIcon zeichnen Allgemeine Java-Themen 2
D Lösung Differentialgl. mit RungeKutta + Kurve zeichnen Allgemeine Java-Themen 3
U Zeichnen mit JFrame. Allgemeine Java-Themen 5
lenniii zeichnen Allgemeine Java-Themen 2
N Tepich zeichnen Allgemeine Java-Themen 8
K Zeichnen auf ein Bild und Scrollen Allgemeine Java-Themen 7
S Problem mit Zeichnen Allgemeine Java-Themen 8
L Buffered Image teilweise zeichnen Allgemeine Java-Themen 6
B Tool zum Zeichnen von Systemarchitektur Allgemeine Java-Themen 2
MasterEvil Lib zum zeichnen von Baumdiagrammen? Allgemeine Java-Themen 4
O TimeSeriesChart Linien Fetter Zeichnen Allgemeine Java-Themen 2
B Programmablaufgraph erstellen und zeichnen Allgemeine Java-Themen 2
H Sinusähnliche Kurve mit Paint zeichnen! Allgemeine Java-Themen 3
G Bild neu zeichnen Allgemeine Java-Themen 13
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
L Linien, Recktecke und Elipsen zeichnen ohne Image Allgemeine Java-Themen 2
R Grafiken. direkt zeichnen Allgemeine Java-Themen 5
S Auf vorhandenes Window zeichnen? Allgemeine Java-Themen 2
G BufferedImage zeichnen Allgemeine Java-Themen 4
S Vierecke zeichnen Allgemeine Java-Themen 18
T Rechtecke usw mit Paint auf Panel zeichnen Allgemeine Java-Themen 5
G Bilder zeichnen und Zoom Funktion Allgemeine Java-Themen 2
J Fenster mit paint Methode selbst zeichnen Allgemeine Java-Themen 3
A Zeichnen mit JAVA ! Allgemeine Java-Themen 3
T Linien-Diagramm zeichnen Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben