();
Rectangle2D rect ;
public void addSlice ( valore doppio , colore a colori ) per
vuoto sorteggio pubblico ( Graphics2D g , zona Rectangle2D ) per
public void init ();
@ Overridepublic void paint ( Graphics g ) per
pubblico static void main ( String [] args ) per
/*** rappresenta i dati di una fetta della torta . * /private class PieSlice
}
il resto del tutorial coprire la compilazione del codice per ciascun metodo descritto nel codice qui sopra .
4
Implementare la classe privata PieSlice . Questo conterrà i dati per ogni " fetta " del grafico a torta . Incollare il seguente codice: . .
Classe PieSlice privato { valore doppio ; colore colori ;
/*** La fetta di torta * @ param value La dimensione della slice * @ param colore il colore desiderato per la fetta * PieSlice /pubblico ( valore doppio , colore a colori ) { this.colore = colore ; this.value = value; } .
}
5
implementare il metodo addSlice incollando il seguente codice :
public void addSlice ( valore doppio , colore a colori ) { slices.add ( nuovo PieSlice ( valore , colore) );}
Questo crea solo un nuovo PieSlice e lo aggiunge alla lista fetta ArrayList
6
Implementare il metodo init incollando il seguente : .
public void init ( ) {
questa . setSize ( 800,600 ) ; this.setVisible ( true); rect = new Rectangle ( 100 , 100 , 600 , 480) ;
} ;
7
Implementare il metodo draw di incollando il seguente codice :
vuoto sorteggio pubblico ( Graphics2D g , zona Rectangle2D ) {double pieSize = 0; for ( PieSlice fetta : fette ) { pieSize + = slice.value ; } doppia currentValue = 0 ; int startAngle = 0; int arcAngle = 0; for ( PieSlice fetta : fette ) { startAngle = ( int ) ( currentValue * 360 /pieSize ) ; arcAngle = ( int ) ( slice.value * 360 /pieSize ) ;
//Se questa è l'ultima fetta , fare questo per garantire che non vi è alcuna 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 ; } }
Questo è il cavallo di battaglia del programma . Si passa attraverso ogni sezione del grafico a torta e disegna un arco colorato corrispondente alla sua percentuale della torta.
8
Implementare il metodo di pittura che la classe PieChart otterrà dalla superclasse JFrame . Tutto ciò che fa è chiamare il metodo draw ogni volta che è necessario un aggiornamento :
@ void paint Overridepublic ( Graphics g ) { draw ( ( Graphics2D ) this.getGraphics ( ) , rect );}
< br > 9
Creare un metodo principale per testare la classe e assicurarsi che funziona :
public static void main (String [] args ) { PieChart tabella = new PieChart (); chart.init ( ) ; < br
chart.addSlice > ( 10 , Color.RED ) ; chart.addSlice ( 7 , color.blue ) ; chart.addSlice ( 3 , Color.green ) ; chart.addSlice ( 15 , Color.ORANGE ) ; < br
}
>