Bien que la langue JavaFX contient un outil pour la création facile de diagrammes circulaires, Java ordinaire fournit aucune fonctionnalité facile. Au lieu de cela, vous devrez concevoir votre propre classe pour la création de diagrammes circulaires en utilisant le langage Java. La clé de la tâche sera la classe Graphics2D construite dans la bibliothèque Java AWT standard.
Créer une nouvelle classe. Si vous utilisez un environnement de développement intégré (IDE), cliquez sur "Fichier", "nouvelle classe". Sinon, le Bloc-notes ouvert ou votre éditeur de texte de choix et enregistrez le fichier comme "PieChart.java."
Importez les bibliothèques dont vous aurez besoin dans votre programme de la bibliothèque standard Java en collant les éléments suivants:
import java.awt.Color
ALLER
java.awt.Graphics d`importation
ALLER
import java.awt.Graphics2D
ALLER
import java.awt.Rectangle
ALLER
import java.awt.geom.Rectangle2D
ALLER
import java.util.ArrayList
ALLER
import javax.swing.JFrame;Collez le suivant pour créer la classe PieChart:
/ **
Dessine un diagramme circulaire.
* /
PieChart public class extends JFrame {ArrayList
tranches = new ArrayList ()
ALLERRectangle2D rect
ALLERaddSlice public void (valeur double, couleur couleur)
tirage public void (Graphics2D g, zone Rectangle2D)
public void init ()
ALLER@Passer outre
public void paint (Graphics g)public static void main (String [] args)
/ **
- Cela représente les données d`une part du gâteau.
* /
PieSlice private class
- Cela représente les données d`une part du gâteau.
}
Le reste du tutoriel va couvrir la garniture dans le code pour chaque méthode décrite dans le code ci-dessus.
Mettre en œuvre la classe privée PieSlice. Celle-ci contiendra les données pour chaque "tranche" du diagramme circulaire. Collez le code suivant:
classe privée PieSlice {
valeur doubleALLER
couleur de couleur
ALLER
/ **
* La part du gâteau.
* Valeur @param La taille de la tranche.
* @param Couleur La couleur souhaitée pour la tranche.
* /
PieSlice publique (double valeur, la couleur de couleur) {
this.color = couleurALLER
this.value = valeur
ALLER
}
}
Mettre en œuvre la méthode de addSlice en collant le code suivant:
addSlice public void (double valeur, la couleur de couleur) {
slices.add (nouveau PieSlice (valeur, couleur))ALLER
}
Cela crée simplement un nouveau PieSlice et l`ajoute à la liste de tranche ArrayList.
Mettre en œuvre la méthode init en collant le suivant:
# 9 vide public init () {
this.setSize (800,600)
ALLER
this.setVisible (true)
ALLER
rect = new Rectangle (100, 100, 600, 480)
ALLER
} -
Mettre en œuvre la méthode de tirage en collant le code suivant:
tirage public void (Graphics2D g, zone Rectangle2D) {
à double pieSize = 0ALLER
pour (PieSlice tranche: tranches) {
pieSize + = slice.valueALLER
}
à double currentValue = 0ALLER
int startAngle = 0
ALLER
int arcAngle = 0
ALLER
pour (PieSlice tranche: tranches) {
startAngle = (int) (currentValue * 360 / pieSize)ALLER
arcAngle = (int) (slice.value * 360 / pieSize)
ALLER
// Si ceci est la dernière tranche, faites ceci pour assurer qu`il n`y a pas de lacunes.
if (slice.equals (slices.get (slices.size () - 1))) {
arcAngle = 360 - startAngleALLER
}
g.setColor (slice.color)
ALLER
g.fillArc ((int) area.getMinX (), (int) area.getMinY (), (int) area.getWidth (), (int) area.getHeight (), startAngle, arcAngle)
ALLER
currentValue + = slice.value
ALLER
}
}
Ceci 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.
Mettre en œuvre la méthode de peinture que la classe PieChart obtiendra de la superclasse JFrame. Tout ce qu`il fait est d`appeler la méthode de tirage au sort à chaque fois qu`un rafraîchissement est nécessaire:
@Passer outre
public void paint (Graphics g) {
dessiner ((Graphics2D) this.getGraphics (), rect)ALLER
}
Créer une méthode principale pour tester la classe et veiller à ce qu`il fonctionne:
main (String [] args) {public static void
PieChart chart = new PieChart ()
ALLER
chart.init ()
ALLER
chart.addSlice (10, Color.RED)
ALLER
chart.addSlice (7, Color.BLUE)
ALLER
chart.addSlice (3, Color.GREEN)
ALLER
chart.addSlice (15, Color.ORANGE)
ALLER
}