“Conocimientos Programación>Programación Java

Cómo dibujar un gráfico circular en Java

2012/6/12
Aunque el lenguaje JavaFX incluye una herramienta para crear fácilmente gráficos circulares , Java ordinaria no proporciona dicha funcionalidad fácil. En su lugar, tendrá que diseñar su propia clase para la creación de gráficos de sectores que utilizan el lenguaje Java. La clave para la tarea será la clase Graphics2D incorporado en la biblioteca AWT Java estándar. Instrucciones
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 = new ArrayList ();

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 ) ;}

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 ) ;

}

Programación Java
Cómo repetir un TreeMap
¿Qué es un socket en Java
¿Por qué las clases abstractas en Java
Cómo activar el código Java a código Android
¿Qué es NetBeans Desarrollo
Java Quicktime Tutorial
Java formato doble
Cómo crear un cursor personalizado en Java
Conocimientos Informáticos © http://www.ordenador.online