Comment dessiner un graphique circulaire en Java

Bien que la langue JavaFX contient un outil pour la création facile de camemberts, Java ordinaire ne fournit pas une telle fonctionnalité facile. Au lieu de cela, vous devrez créer 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 intégré dans la bibliothèque Java AWT standard.

Instructions

  1. 1

    Créer une nouvelle classe. Si vous utilisez un environnement de développement intégré (IDE), il suffit de cliquer "Fichier," "Nouvelle classe." Sinon, le bloc-notes ouvert ou votre éditeur de texte de votre choix et enregistrez le fichier en tant que "PieChart.java."

  2. 2

    Importez les bibliothèques dont vous aurez besoin dans votre programme de la bibliothèque standard de Java en collant le texte suivant:

    importation java.awt.Color
    GO
    java.awt.Graphics d'importation
    GO
    importation java.awt.Graphics2D
    GO
    importation java.awt.Rectangle
    GO
    importation java.awt.geom.Rectangle2D
    GO
    importation java.util.ArrayList
    GO
    javax.swing.JFrame importation;

  3. 3

    Collez le texte suivant pour créer la classe PieChart:

    / **

    • Dessine un diagramme circulaire.
      * /
      PieChart public class extends JFrame {

      ArrayList tranches = new ArrayList()
      GO

      Rectangle2D rect
      GO

      addSlice public void (valeur double, couleur couleur)

      tirage public void (Graphics2D g, zone Rectangle2D)

      public void init ()
      GO

      Override
      public void paint (Graphics g)

      public static void main (String [] args)

      / **

      • Cela représente les données pour une tranche de la tarte.
        * /
        PieSlice de classe privée
      • }

        Le reste du tutoriel va couvrir la garniture dans le code pour chaque méthode décrite dans le code ci-dessus.

      • 4

        Mettre en œuvre la classe privée PieSlice. Cela tiendra les données pour chaque "tranche" du camembert. Collez le code suivant:

        classe privée PieSlice {
        valeur double

        GO

        couleur Couleur

        GO

        / **
        * La part du gâteau.
        * Valeur deparam La taille de la tranche.
        *param Couleur La couleur souhaitée pour la tranche.
        * /
        PieSlice publique (le double de la valeur, la couleur de couleur) {
        this.color = couleur

        GO

        this.value = valeur

        GO

        }

        }

      • 5



        Mettre en œuvre la méthode de addSlice en collant le code suivant:

        addSlice public void (le double de la valeur, la couleur de couleur) {
        slices.add (nouvelle PieSlice (valeur, couleur))

        GO

        }

        Cela crée simplement un nouveau PieSlice et l'ajoute à la liste de tranche ArrayList.

      • 6

        Mettre en œuvre la méthode init en collant le suivant:

        &# 9 vide publiques init () {

        this.setSize (800,600)

        GO

        this.setVisible (vrai)

        GO

        rect = new Rectangle (100, 100, 600, 480)

        GO

        } -
      • 7

        Mettre en œuvre la méthode de tirage en collant le code suivant:

        tirage au sort public void (Graphics2D g, zone Rectangle2D) {
        à double pieSize = 0

        GO

        pour (PieSlice tranche: tranches) {
        pieSize + = slice.value

        GO

        }
        à double currentValue = 0

        GO

        int startAngle = 0

        GO

        int arcAngle = 0

        GO

        pour (PieSlice tranche: tranches) {
        startAngle = (int) (currentValue * 360 / pieSize)

        GO

        arcAngle = (int) (slice.value * 360 / pieSize)

        GO

        // Si ceci est la dernière tranche, le faire pour vous assurer qu'il n'y a pas de lacunes.
        if (slice.equals (slices.get (slices.size () - 1))) {
        arcAngle = 360 - startAngle



        GO

        }

        g.setColor (slice.color)

        GO

         g.fillArc ((int) area.getMinX (), (int) area.getMinY (), (int) area.getWidth (), (int) area.getHeight (), startAngle, arcAngle)

        GO

         currentValue + = slice.value

        GO

        }

        }

        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.

      • 8

        Mettre en œuvre la méthode de peinture qui la classe PieChart obtiendra de la superclasse JFrame. Tout ce qu'il fait est d'appeler la méthode de tirage à chaque fois qu'un rafraîchissement est nécessaire:

        Override
        public void paint (Graphics g) {
        draw ((Graphics2D) this.getGraphics (), rect)

        GO

        }
      • 9

        Créer une méthode principale pour tester la classe et vous assurer qu'il fonctionne:

        main (String [] args) {public static void

        PieChart tableau = new PieChart ()

        GO

        chart.init ()

        GO

        chart.addSlice (10, Color.RED)

        GO

        chart.addSlice (7, Color.BLUE)

        GO

        chart.addSlice (3, Color.GREEN)

        GO

        chart.addSlice (15, Color.ORANGE)

        GO

        }
      » » » » Comment dessiner un graphique circulaire en Java