1
Crear una nueva clase. Si está utilizando un entorno de desarrollo integrado ( IDE ) , simplemente haga clic en " Archivo", " Nueva Clase ". De lo contrario , abra el Bloc de notas o tu editor de texto de la opción y guardar el archivo como " PieChart.java . "
2
Import las librerías que necesitan en su programa de la biblioteca estándar de Java pegando el siguiente :
java.awt.Color
importación; java.awt.Graphics importación; java.awt.Graphics2D importación; java.awt.Rectangle importación; java.awt.geom.Rectangle2D importación , importación java.util.ArrayList ; javax.swing.JFrame importación;
3
Pega el siguiente para crear la clase PieChart :
/*** Dibuja un gráfico circular * PieChart clase /public extiende . JFrame {
ArrayList rebanadas 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 . 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; } . } 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 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 ) ; } ; 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 ;} 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. 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 ) ;} 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 ) ; }
4
5
6
7
< p> g.setColor ( slice.color ) ; g.fillArc ( (int ) area.getMinX () (int ) area.getMinY () (int ) area.getWidth () (int ) area.getHeight () , startAngle , arcAngle ) ; CurrentValue + = slice.value ;} }
8
9