Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Non riesco a creare un grafico a torta...
Forum - Java - Non riesco a creare un grafico a torta...

Avatar
The Lizard King (Member)
Rookie


Messaggi: 33
Iscritto: 10/06/2007

Segnala al moderatore
Postato alle 19:59
Martedì, 19/02/2008
Ciao a tutti. Sto provando a creare un grafico a torta, ma il risultato è ben diverso da quello che credevo. Ho 4 valori, ma il cerchio non viene MAI completato, a meno che non utilizzi solo 2 valori... ma non capisco perchè non debba venire con 4 valori. Eppure la somma delle angolazioni è 360 o un valore che si avvicina (in questo caso 359). Chiedo aiuto a voi, davvero non ci arrivo  :D

Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class Arc extends JPanel
  4. {
  5.         public void paintComponent(Graphics g)
  6.         {
  7.                 super.paintComponent(g);
  8.                
  9.                 setBackground(Color.BLACK);
  10.                 int first=1,second=5,third=10,fourth=15;
  11.                 int somma = first + second + third + fourth;
  12.                 int perc1=(int)(first*360)/somma,perc2=(int)(second*360)/somma,perc3=(int)(third*360)/somma,perc4=(int)(fourth*360)/somma;
  13.                
  14.                 g.drawString(""+(perc1+perc2+perc3+perc4),10,20);
  15.                 g.setColor(Color.GREEN);
  16.                 g.fillArc(20,20,60,60,0,perc1);
  17.                 g.setColor(Color.BLUE);
  18.                 g.fillArc(20,20,60,60,perc1,perc2);
  19.                 g.setColor(Color.YELLOW);
  20.                 g.fillArc(20,20,60,60,perc2,perc3);
  21.                 g.setColor(Color.RED);
  22.                 g.fillArc(20,20,60,60,perc3,perc4);
  23.  
  24.         }
  25.         public static void main(String[] args)
  26.         {
  27.                 Arc panel = new Arc();
  28.                 JFrame frame = new JFrame("Arco");
  29.                 frame.setSize(100,120);
  30.                 frame.setLocationRelativeTo(null);
  31.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  32.                
  33.                 frame.add(panel);
  34.                
  35.                 frame.setVisible(true);
  36.         }
  37. }


PM Quote
Avatar
tax71p (Normal User)
Newbie


Messaggi: 1
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 16:40
Mercoledì, 07/04/2010
ciao quello che sbagli è il punto da dove parti per disegnare l'arco...
prova così:
        g.setColor(Color.GREEN);
        g.fillArc(20,20,60,60,0,perc1);
        g.setColor(Color.BLUE);
        g.fillArc(20,20,60,60,perc1,perc2);
        g.setColor(Color.YELLOW);
        g.fillArc(20,20,60,60,perc1+perc2,perc3);
        g.setColor(Color.RED);
        g.fillArc(20,20,60,60,perc1+perc2+perc3,perc4);

ciao.

PM Quote