();
Rectangle2D rect ;
addSlice public void ( valeur double , la couleur de couleur)
tirage au sort public void ( Graphics2D g, zone Rectangle2D )
public void init () ;
@ Overridepublic void paint (Graphics g )
static void public principal ( string [ ] args )
/*** Ceci représente les données pour une part du gâteau . * /private classe PieSlice
}
le reste du tutoriel couvre remplissant le code pour chaque méthode décrite dans le code ci-dessus .
4
implémenter la classe privée PieSlice . Celle-ci contiendra les données de chaque " tranche" du camembert . Collez le code suivant : . .
Privé classe PieSlice { valeur double , la couleur de couleur;
/*** de La part du gâteau * @ param valeur de la taille de la tranche * @ param Couleur la couleur désirée pour la tranche * PieSlice /public ( valeur double , de couleur de couleur) { this.couleur = couleurs; this.value = value; } .
}
5
Mettre en œuvre la méthode de addSlice en collant le code suivant :
addSlice public void ( valeur double , la couleur de couleur) { slices.add ( nouveau PieSlice ( valeur , couleur) );}
Cela crée juste un nouveau PieSlice et l'ajoute à la tranche liste ArrayList
6
Mettre en œuvre la méthode init en collant ce qui suit: .
public void init () {
cette . setSize ( 800,600 ) ; this.setVisible (true); rect = new Rectangle (100, 100 , 600, 480) ;
};
7
Mettre en œuvre la méthode de tirage au sort par collant le code suivant :
tirage au sort public void ( Graphics2D g, zone Rectangle2D ) { deux pieSize = 0; for ( PieSlice tranche : tranches) { pieSize + = slice.value ;} deux currentValue = 0; int startAngle = 0; int arcAngle = 0; for ( PieSlice tranche : tranches) { startAngle = (int ) ( currentValue * 360 /pieSize ) ; arcAngle = (int ) ( slice.value * 360 /pieSize ) ;
//Si c'est la dernière tranche, le font pour s'assurer qu'il n'ya pas 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 ;} }
c'est le cheval de bataille du programme. Elle passe par chaque tranche de camembert et dessine un arc de couleur correspondant à son pourcentage de la tarte.
8
Mettre en œuvre la méthode de peinture qui la classe PieChart obtiendra de la JFrame superclasse. Tout ce qu'il fait est d'appeler la méthode de tirage au sort à chaque fois un rafraîchissement est nécessaire:
@ Overridepublic void paint (Graphics g ) { draw ( ( Graphics2D ) this.getGraphics () , rect );}
< br > 9
créer une méthode principale pour tester la classe et s'assurer qu'il fonctionne: Photos
public static void main ( string [] args ) { PieChart tableau = new PieChart (); chart.init ();
chart.addSlice (10, color.red ) ; chart.addSlice (7, color.blue ) ; chart.addSlice (3, Color.GREEN ) ; chart.addSlice (15, Color.ORANGE ) ;
}