Gewusst wie: Zeichnen Sie ein Kreisdiagramm in Java

May 1

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

}