ubiquitour.com

Cómo dibujar un gráfico en Java

Cómo dibujar un gráfico en Java

Aunque el lenguaje JavaFX contiene una herramienta para la fácil creación de gráficos, Java ordinaria no proporciona tal fácil funcionalidad. En cambio, tendrá que diseñar su propia clase para la creación de gráficos utilizando el lenguaje Java. La clave de la tarea será la clase Graphics2D incorporada en la biblioteca estándar de Java AWT.

Instrucciones

1 Crear una nueva clase. Si está utilizando un entorno de desarrollo integrado (IDE), simplemente haga clic en \"File,\" \"New clase \" de lo contrario, abrir Bloc de notas o su editor de texto de la opción y guarda el archivo como \"PieChart.java.\"

2 Importar las bibliotecas que tendrá en su programa de la biblioteca estándar de Java por pegar lo siguiente:

Import java.awt.ColorIRImport java.awt.GraphicsIRimportación java.awt.Graphics2DIRimportación java.awt.RectangleIRimportación java.awt.geom.Rectangle2DIRimportar java.util.ArrayListIRImport javax.swing.JFrame;

3 Pegue el siguiente para crear la clase PieChart:

/**

Dibuja un gráfico de sectores.*/PieChart la clase extiende JFrame {}

ArrayList < PieSlice > rebanadas = nuevo () ArrayList < PieSlice >IR

Rectangle2D rectIR

público vacío addSlice (doble valor, Color color)

sorteo público void (Graphics2D g, área Rectangle2D)

público vacío init()IR

@Overridepública vacía pintura (gráficos g)

principal vacío estático público (String [] args)

/**

Esto representa los datos de un trozo del pastel.*/clase privada PieSlice }

El resto del tutorial cubrirá de relleno en el código de cada método que se describe en el código anterior.

4 Implementar la clase privada PieSlice. Esto mantendrá los datos de cada \"slice\" del gráfico. Pegue el código siguiente:

private class PieSlice { double value

IR

Color color

IR

/** * The slice of the pie. * @param value The size of the slice. * @param color The color desired for the slice. */ public PieSlice(double value, Color color) { this.color = color

IR

this.value = value

IR

}

}5

Implemente el método addSlice pegando el siguiente código:

public void addSlice(double value, Color color) { slices.add(new PieSlice(value, color))

IR

}

Esto sólo crea un nuevo PieSlice y agrega a la lista ArrayList de la rebanada.

6 Implemente el método init por pegar lo siguiente:

público vacío init() {}

this.setSize(800,600)

IR

this.setVisible(true)

IR

rect = new Rectangle(100, 100, 600, 480)

IR

};7

Implementar el método de sorteo por pegar el siguiente código:

public void draw(Graphics2D g, Rectangle2D area) { double pieSize = 0

IR

for (PieSlice slice : slices) { pieSize += slice.value

IR

} double currentValue = 0

IR

int startAngle = 0

IR

int arcAngle = 0

IR

for (PieSlice slice : slices) { startAngle = (int)(currentValue * 360 / pieSize)

IR

arcAngle = (int)(slice.value * 360 / pieSize)

IR

// If this is the last slice, do this to ensure there is no gaps. if (slice.equals(slices.get(slices.size()-1))) { arcAngle = 360 - startAngle

IR

}

g.setColor(slice.color)

IR

g.fillArc((int)area.getMinX(), (int)area.getMinY(), (int)area.getWidth(), (int)area.getHeight(), startAngle, arcAngle)

IR

currentValue += slice.value

IR

}

}

Este es del programa. Pasa por cada rebanada del gráfico y dibuja un arco de color correspondiente a su porcentaje del pastel.

8 Implementar el método de pintura que la clase PieChart de la superclase de JFrame. Lo único que hace es llamar al método draw cada vez que una actualización es necesario:

@Override public void paint(Graphics g) { draw((Graphics2D) this.getGraphics(), rect)

IR

}9

Cree un método main para probar la clase y asegurarse de que funciona:

el principal vacío estático público (String [] args) {}

PieChart chart = new PieChart()

IR

chart.init()

IR

chart.addSlice(10, Color.RED)

IR

chart.addSlice(7, Color.BLUE)

IR

chart.addSlice(3, Color.GREEN)

IR

chart.addSlice(15, Color.ORANGE)

IR

}