Guten Abend!
Ich habe hier eine Klasse, die mir ein Tortendiagramm mit zwei "Tortenstücken" liefert:
Ich wollte nun noch der Übersicht halber auf jedem Tortenstück darstellen, wie viel Prozent das entsprechende Stück ausfüllt (siehe die g.drawString Methoden), leider funktioniert es scheinbar nicht wie geplant. Sieht jemand, woran das liegen könnte? Danke im Voraus
PS: JFreeChart bitte außen vorlassen
Ich habe hier eine Klasse, die mir ein Tortendiagramm mit zwei "Tortenstücken" liefert:
Java:
import javax.swing.*;
import java.awt.*;
// Eine Klasse zum Bereitstellen von Tortendiagrammen.
class TortenDiagramm extends JComponent
{
private int prozentBenutzt;
private int prozentVerschwendet;
public TortenDiagramm(int i)
{
this.prozentBenutzt = i;
this.prozentVerschwendet = 100-i;
}
// überschreibt die JComponent-Methode
public void paint(Graphics g)
{
drawPie((Graphics2D) g, getBounds());
}
// zeichnet das Diagramm
void drawPie(Graphics2D g, Rectangle area)
{
double kurvenWert = 0.0D;
int startWinkel = 0;
// Erstes Tortenstück
startWinkel = (int) (kurvenWert * 360 / 100);
int arcWinkel = (int) (prozentBenutzt * 360 / 100);
g.setColor(Color.magenta);
g.fillArc(area.x, area.y, area.width, area.height, startWinkel, arcWinkel);
g.setColor(Color.BLACK);
g.setFont(new Font("Arial", Font.BOLD, 24));
g.drawString(""+Integer.toString(prozentBenutzt), area.x, area.y);
kurvenWert += prozentBenutzt;
// Zweites Tortenstück
startWinkel = (int) (kurvenWert * 360 / 100);
arcWinkel = (int) (prozentVerschwendet * 360 / 100);
g.setColor(Color.yellow);
g.fillArc(area.x, area.y, area.width, area.height, startWinkel, arcWinkel);
g.setColor(Color.BLACK);
g.drawString(""+Integer.toString(prozentVerschwendet), area.x, area.y);
kurvenWert += prozentVerschwendet;
}
}
Ich wollte nun noch der Übersicht halber auf jedem Tortenstück darstellen, wie viel Prozent das entsprechende Stück ausfüllt (siehe die g.drawString Methoden), leider funktioniert es scheinbar nicht wie geplant. Sieht jemand, woran das liegen könnte? Danke im Voraus
PS: JFreeChart bitte außen vorlassen