();
Rectangle2D rect ;
pública addSlice void ( valor doble , color del color )
public void draw ( Graphics2D g, zona Rectangle2D )
public void init ();
@ Overridepublic void paint ( Graphics g )
public static void principal ( string [] args ) guía
/*** Esto representa los datos de un trozo del pastel . * Clase /privada PieSlice
}
el resto del tutorial se cubre rellenar el código de cada método descrito en el código anterior .
4
Implementar la clase privada PieSlice . Esto mantendrá los datos de cada "rebanada " del gráfico circular . Pega el siguiente código: . .
PieSlice privada clase { doble valor , el color del color ;
/*** La rebanada del pastel * @ param value El tamaño de la rebanada * @ param el color del color deseado para la división PieSlice * /public ( valor doble , color del color ) { this.color = color, this.value = valor; } .
}
5
Implemente el método addSlice pegando el siguiente código: public void
addSlice ( valor doble , color del color ) { slices.add ( nueva PieSlice (valor , color) ) ;}
Esto crea sólo un nuevo PieSlice y lo agrega a la lista ArrayList rebanada
6
Implementar el método init pegando el siguiente : .
public void init ( ) {
este . setSize ( 800.600 ) ; this.setVisible ( true); rect = new Rectangle (100, 100 , 600, 480 ) ;
} ;
7
Aplicar el método de sorteo por pegar el siguiente código:
public void draw ( Graphics2D g, zona Rectangle2D ) {double pieSize = 0 , porque ( PieSlice corte: cortes) { pieSize + = slice.value ;} doble CurrentValue = 0 ; startAngle int = 0 ; arcAngle int = 0 ; para ( PieSlice corte: cortes) { startAngle = ( int) ( CurrentValue * 360 /pieSize ) ; arcAngle = ( int) ( slice.value * 360 /pieSize ) ;
//Si este es el último corte , hacer esto para asegurarse de que no hay 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 ;} }
Este es el caballo de batalla del programa. Pasa a través de cada sector del gráfico circular y dibuja un arco de color correspondiente a su porcentaje de la torta.
8
Aplicar el método de pintura que la clase PieChart obtendrá del JFrame superclase. Todo lo que hace es llamar al método draw cada vez que se necesita una actualización :
@ Overridepublic void paint ( Graphics g ) { draw ( ( Graphics2D ) this.getGraphics (), rect ) ;}
< br > 9
Crear un método principal para probar la clase y asegurarse de que funciona:
públicos void (String [] args ) { static PieChart carta PieChart = new (); chart.init ();
chart.addSlice ( 10 , Color.RED ) ; chart.addSlice ( 7 , Color.BLUE ) ; chart.addSlice ( 3 , Color.green ) ; chart.addSlice ( 15 , Color.ORANGE ) ;
}