();
Rectangle2D rect ;
public void addSlice ( double-Wert , Farbe Farbe)
public void draw ( Graphics2D g, Rectangle2D Bereich)
public void init () ;
@ Overridepublic void paint (Graphics g)
public static void main ( String [] args)
/*** Diese stellt die Daten für ein Stück vom Kuchen. * /private class PieSlice
}
der Rest des Tutorials wird decken Ausfüllen der Code für jede Methode im obigen Code beschrieben .
4
Implementieren Sie die PieSlice private Klasse . Dies hält die Daten für jeden "Scheibe" des Kreisdiagramms . Fügen Sie den folgenden Code: . .
Private Klasse PieSlice {double value; Farbe Farbe;
/*** Das Stück vom Kuchen * @ param Wert Die Größe der Scheibe * @ param die Farbe für die gewünschte Scheibe * /public PieSlice ( double-Wert , Farbe color ) { this.color = Farbe; this.value = value ;} .
}
5
Implementieren Sie die Methode addSlice durch Einfügen den folgenden Code: public void
addSlice ( double-Wert , Farbe color ) { slices.add (neu PieSlice (Wert, Farbe) );}
Dies schafft nur eine neue PieSlice und fügt sie der Liste Scheibe ArrayList
6
Implementieren Sie die init-Methode durch das Einfügen der folgenden : .
public void init () {
diese . setSize ( 800,600 ); this.setVisible (true); rect = new Rectangle (100, 100 , 600, 480 );
};
7
Implementieren Sie die Methode draw Einfügen den folgenden Code:
public void draw ( Graphics2D g, Rectangle2D Bereich) {double pieSize = 0; for ( PieSlice Scheibe : Scheiben ) { pieSize + = slice.value ;} double currentValue = 0; int startAngle = 0; int arcAngle = 0; for ( PieSlice Scheibe : Scheiben ) { startAngle = (int) ( currentValue * 360 /pieSize ); arcAngle = (int) ( slice.value * 360 /pieSize );
//Wenn dies die letzte Scheibe, tun dies, um sicherzustellen, dass keine gaps.if ( slice.equals ( slices.get ( slices.size () -1 ))) { arcAngle = 360 - startAngle ;}
< p> g.setColor ( slice.color ); g.fillArc ( (int) area.getMinX (), ( int) area.getMinY (), ( int) area.getWidth (), ( int) area.getHeight () , startAngle , arcAngle ); currentValue + = slice.value ;} }
Dies ist das Arbeitspferd des Programms. Es geht durch jede Scheibe des Kreisdiagramms und zieht einen farbigen Bogen entsprechend seinem Anteil vom Kuchen.
8
Implementieren Sie die paint-Methode , dass die PieChart Klasse wird von der Superklasse JFrame bekommen . Alles, was sie tut, ist die Auslosung rufen Verfahren jedes Mal eine Aktualisierung erforderlich ist :
@ Overridepublic void paint (Graphics g) { draw ( ( Graphics2D ) this.getGraphics () , rect) ;}
< br > 9
erstellen wichtigste Methode , um die Klasse zu testen und sicherzustellen, dass es funktioniert :
public static void main (String [] args ) { PieChart chart = new PieChart (); chart.init ();
chart.addSlice (10, Color.red ); chart.addSlice (7, color.Blue ); chart.addSlice (3, Color.GREEN ); chart.addSlice (15, Color.ORANGE );
}