CodeName One Kreisdiagramm

Aus Mediawiki der Ludwig-Geißler-Schule
Version vom 17. Juni 2024, 09:10 Uhr von Steven.masold (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

1. Daten sammeln:

Die Daten für das Kreisdiagramm werden aus den Ausgabenfeldern gesammelt, die der Benutzer in der Benutzeroberfläche eingegeben hat. Diese Daten werden in einem CategorySeries Objekt gespeichert.


<syntaxhighlight lang="java">

private void showPieChart() {

       // Kreisdiagramm
       CategorySeries series = new CategorySeries("Ausgabenverteilung");
       for (int i = 0; i < expenseFields.size(); i++) {
           String category = expenseFields.get(i).getText();
           double cost = Double.parseDouble(costFields.get(i).getText());
           series.add(category, cost);
       }

</syntaxhighligtht>



2. Renderer einrichten:

Ein DefaultRenderer wird erstellt und konfiguriert. Dieser Renderer bestimmt das Aussehen des Diagramms, wie die Farben der Segmente, die Größe der Beschriftungen und ob die Werte angezeigt werden sollen.


// Set up the renderer

       DefaultRenderer renderer = buildCategoryRenderer(colors);
       renderer.setChartTitleTextSize(20);
       renderer.setLabelsTextSize(15);
       renderer.setDisplayValues(true);
       renderer.setShowLabels(true);

Der buildCategoryRenderer ist eine Methode, die den Renderer erstellt und die Farben der einzelnen Segmente festlegt.

 private DefaultRenderer buildCategoryRenderer(int[] colors) {
       DefaultRenderer renderer = new DefaultRenderer();
       renderer.setLabelsTextSize(15);
       renderer.setLegendTextSize(15);
       renderer.setMargins(new int[]{20, 30, 15, 0});
       for (int color : colors) {
           SimpleSeriesRenderer r = new SimpleSeriesRenderer();
           r.setColor(color);
           r.setGradientEnabled(true);
           r.setGradientStart(0, color);
           r.setGradientStop(0, color);
           renderer.addSeriesRenderer(r);
       }
       return renderer;
   }

3. Kreisdiagramm erstellen:

Ein PieChart Objekt wird mit den gesammelten Daten und dem konfigurierten Renderer erstellt.

PieChart chart  = new PieChart(series, renderer);
ChartComponent c = new ChartComponent(chart);

4. Anzeigen des Diagramms:

Das Kreisdiagramm wird in einem Dialog angezeigt, der erstellt und konfiguriert wird, um das Diagramm in der Benutzeroberfläche anzuzeigen. Ein Schließen-Button wird ebenfalls hinzugefügt.

// Create a dialog to display the pie chart
       Dialog d = new Dialog("Ausgabenverteilung", new BorderLayout());
       d.add(BorderLayout.CENTER, c);
       // Modern red close button for the dialog
       Button closeButton = new Button("Schließen");
       Style closeButtonStyle = closeButton.getAllStyles();
       closeButtonStyle.setBgColor(0xE52165);
       closeButtonStyle.setFgColor(0xFFFFFF);
       closeButtonStyle.setBgTransparency(255);
       closeButtonStyle.setPadding(5, 5, 5, 5); // Smaller padding for narrower button
       closeButtonStyle.setBorder(RoundRectBorder.create().shadowOpacity(100).cornerRadius(10));
       closeButton.addActionListener(e -> d.dispose());
       closeButton.setPreferredW(100); // Width of the button
       d.add(BorderLayout.SOUTH, closeButton);
       d.showPopupDialog(salaryField); // Show the dialog near the salary field