Gewusst wie: Zeichnen Sie ein Kreisdiagramm in Java
Obwohl die JavaFX Sprache ein Werkzeug für die einfache Erstellung von Kreisdiagrammen enthält, bietet ordentliche Java keine solche einfache Funktionalität. Stattdessen müssen Sie eine eigene Klasse für die Erstellung von Kreisdiagrammen unter Verwendung der Programmiersprache Java zu entwerfen. Der Schlüssel zur Aufgabe wird Klasse Graphics2D Java AWT-Standardbibliothek eingebaut sein.
Anweisungen
1 Erstellen Sie eine neue Klasse. Wenn Sie eine integrierte Entwicklungsumgebung (IDE) verwenden, klicken Sie einfach \"File,\" \"New Klasse. \" andernfalls öffnen Sie Notepad oder Editor Ihrer Wahl, und speichern Sie die Datei als \"PieChart.java.\"
2 Importbibliotheken Sie die benötigen Sie in Ihr Programm aus der Java-Standardbibliothek werden durch Folgendes einfügen:
java.awt.Color importierenGEHENjava.awt.Graphics importierenGEHENImport java.awt.Graphics2DGEHENImport java.awt.RectangleGEHENImport java.awt.geom.Rectangle2DGEHENjava.util.ArrayList importierenGEHENImport javax.swing.JFrame;
3 Fügen Sie Folgendes ein, um die Klasse Kreisdiagramm erstellen:
/**
Ein Kreisdiagramm zeichnet.*/öffentliche Klasse Kreisdiagramm erweitert JFrame {}
ArrayList < PieSlice > Scheiben = new ArrayList < PieSlice >)GEHEN
Rectangle2D rectGEHEN
öffentliche void AddSlice (double Wert, Farbe)
öffentliche nichtig Unentschieden (Graphics2D-g, Rectangle2D-Bereich)
public void init()GEHEN
@Overrideöffentliche void Paint (Graphics g)
publicstaticvoid Main (String [] Args)
/**
Dies stellt die Daten für ein Stück vom Kuchen.*/private Klasse PieSlice }
Der Rest des Tutorials wird der Code für jede Methode im Code oben beschrieben ausfüllen abdecken.
4 Implementieren Sie die private PieSlice-Klasse. Dies hält die Daten für jedes \"slice\" des Kreisdiagramms. Fügen Sie den folgenden Code:
private class PieSlice { double value
GEHEN
Color color
GEHEN
/** * 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
GEHEN
this.value = value
GEHEN
}
}
5
Implementieren Sie die AddSlice-Methode, indem Sie den folgenden Code einfügen:
public void addSlice(double value, Color color) { slices.add(new PieSlice(value, color))
GEHEN
}
Dies erstellt eine neue PieSlice gerade und der Segment-Liste ArrayList hinzugefügt.
6 Implementieren Sie die Init-Methode, durch Folgendes einfügen:
public void init() {}
this.setSize(800,600)
GEHEN
this.setVisible(true)
GEHEN
rect = new Rectangle(100, 100, 600, 480)
GEHEN
};
7
Implementieren Sie die Draw-Methode, indem Sie den folgenden Code einfügen:
public void draw(Graphics2D g, Rectangle2D area) { double pieSize = 0
GEHEN
for (PieSlice slice : slices) { pieSize += slice.value
GEHEN
} double currentValue = 0
GEHEN
int startAngle = 0
GEHEN
int arcAngle = 0
GEHEN
for (PieSlice slice : slices) { startAngle = (int)(currentValue * 360 / pieSize)
GEHEN
arcAngle = (int)(slice.value * 360 / pieSize)
GEHEN
// 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
GEHEN
}
g.setColor(slice.color)
GEHEN
g.fillArc((int)area.getMinX(), (int)area.getMinY(), (int)area.getWidth(), (int)area.getHeight(), startAngle, arcAngle)
GEHEN
currentValue += slice.value
GEHEN
}
}
Dies ist das "Arbeitspferd" des Programms. Es durchläuft jedes Segment des Kreisdiagramms und zieht einen farbigen Bogen entspricht ihren prozentualen Anteil vom Kuchen.
8 Implementieren Sie die Paint-Methode, die die Kreisdiagramm-Klasse von JFrame Oberklasse zu erhalten. Alles, was sie tut wird die Draw-Methode aufrufen, jedes Mal, wenn eine Aktualisierung erforderlich ist:
@Override public void paint(Graphics g) { draw((Graphics2D) this.getGraphics(), rect)
GEHEN
}
9
Erstellen Sie eine main-Methode um die Klasse zu testen und sicherzustellen, dass es funktioniert:
publicstaticvoid Main (String [] Args) {}
PieChart chart = new PieChart()
GEHEN
chart.init()
GEHEN
chart.addSlice(10, Color.RED)
GEHEN
chart.addSlice(7, Color.BLUE)
GEHEN
chart.addSlice(3, Color.GREEN)
GEHEN
chart.addSlice(15, Color.ORANGE)
GEHEN
}