December 19
Anche se il linguaggio JavaFX contiene uno strumento per la facile creazione di grafici a torta, ordinario Java fornisce tale funzionalità facile. Invece, è necessario progettare la propria classe per la creazione di grafici a torta utilizzando il linguaggio Java. La chiave per il compito sarà la classe Graphics2D incorporato nella libreria standard di Java AWT.
1 Creare una nuova classe. Se si utilizza un ambiente di sviluppo integrato (IDE), basta cliccare \ "File, \" \ "Nuova classe. \" Altrimenti, aprire il Blocco note o un editor di testo di scelta e salvare il file come \ "PieChart.java. \"
2 Importare le librerie di cui avrete bisogno nel vostro programma dalla libreria standard di Java incollando il seguente:
importazione java.awt.Color
ANDARE
java.awt.Graphics importazione
ANDARE
importazione java.awt.Graphics2D
ANDARE
importazione java.awt.Rectangle
ANDARE
importazione java.awt.geom.Rectangle2D
ANDARE
importazione java.util.ArrayList
ANDARE
import javax.swing.JFrame;
3 Incollare il seguente per creare la classe PieChart:
/ **
Disegna un grafico a torta.
* /
public class PieChart estende JFrame {
ArrayList <PieSlice> fette = new ArrayList <PieSlice> ()
ANDARE
Rectangle2D rect
ANDARE
addSlice public void (valore doppio, colore colore)
draw public void (Graphics2D g, zona Rectangle2D)
public void init ()
ANDARE
@Override
vernice public void (Graphics g)
void main (String [] args) public static
/ **
Questo rappresenta i dati di una fetta della torta.
* /
Classe PieSlice privato
}
Il resto del tutorial coprirà compilazione del codice per ogni metodo descritto nel codice di cui sopra.
4 Implementare la classe privata PieSlice. Questo conterrà i dati per ogni \ "fetta \" del grafico a torta. Incollare il seguente codice:
private class PieSlice {
double value
ANDARE
Color color
ANDARE
/**
* 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
ANDARE
this.value = value
ANDARE
}
}
5 Implementare il metodo addSlice incollando il seguente codice:
public void addSlice(double value, Color color) {
slices.add(new PieSlice(value, color))
ANDARE
}
Questo crea solo un nuovo PieSlice e lo aggiunge alla lista di fette ArrayList.
6 Implementare il metodo init incollando il seguente:
public void init () {
this.setSize(800,600)
ANDARE
this.setVisible(true)
ANDARE
rect = new Rectangle(100, 100, 600, 480)
ANDARE
};
7 Implementare il metodo draw incollando il seguente codice:
public void draw(Graphics2D g, Rectangle2D area) {
double pieSize = 0
ANDARE
for (PieSlice slice : slices) {
pieSize += slice.value
ANDARE
}
double currentValue = 0
ANDARE
int startAngle = 0
ANDARE
int arcAngle = 0
ANDARE
for (PieSlice slice : slices) {
startAngle = (int)(currentValue * 360 / pieSize)
ANDARE
arcAngle = (int)(slice.value * 360 / pieSize)
ANDARE
// 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
ANDARE
}
g.setColor (slice.color)
ANDARE
g.fillArc((int)area.getMinX(), (int)area.getMinY(), (int)area.getWidth(), (int)area.getHeight(), startAngle, arcAngle)
ANDARE
currentValue += slice.value
ANDARE
}
}
Questo è il cavallo di battaglia del programma. Si passa attraverso ogni fetta del grafico a torta e disegna un arco colorato corrispondente alla sua quota della torta.
8 Implementare il metodo di vernice che la classe PieChart otterrà dalla superclasse JFrame. Tutto ciò che fa è chiamare il metodo draw ogni volta che è necessario un aggiornamento:
@Override
public void paint(Graphics g) {
draw((Graphics2D) this.getGraphics(), rect)
ANDARE
}
9 Creare un metodo principale per testare la classe e assicurarsi che funziona:
Main (string [] args) {public static void
PieChart chart = new PieChart()
ANDARE
chart.init()
ANDARE
chart.addSlice(10, Color.RED)
ANDARE
chart.addSlice(7, Color.BLUE)
ANDARE
chart.addSlice(3, Color.GREEN)
ANDARE
chart.addSlice(15, Color.ORANGE)
ANDARE
}