Wie kann ich ein Java Array als Säulendiagramm ausgeben?

3 Antworten

Binde dir Processing als externe Grafikbibliothek ein, so kannst du Vierecke u.ä. zeichnen.

Zum Zeichnen kannst du via 2 ineinander verschachtelten Schleifen über deine Werte laufen (von 0 bis max. Element). Pro Iteration prüfst du, ob der Wert aus dem Array bereits von dem Schleifenzähler überschritten wurde oder nicht. Wenn nicht, zeichnest du ein ausgefülltes Kästchen.

Ich würde, wenn du es selbst machen willst, einfach ein Element von JPanel ableiten. In dieses zeichnest du dann mithilfe der Graphics-Klasse Rechtecke und zusätzlich Linien für die Achsen. Text ist ebenfalls zeichenbar. Vergiss nicht Antialiasing einzuschalten, sonst sieht es schlecht aus.

Die Graphics- bzw. Graphics2D-Klasse ist ziemlich einfach aufgebaut und ein Befehl ist innerhalb weniger Sekunden ergoogelt. Das einzig "Anspruchsvolle" wird die Mathematik sein, auf deren Grundlage du Position und Größe der Säulen berechnen musst, wobei das bei dieser Aufgabe noch relativ milde ausfällt.

Schau es dir einfach mal an und frag nach, falls es Schwierigkeiten gibt.

Mit der folgenden (kostenlosen) Library geht das blitzschnell:

http://www.jfree.org/jfreechart/samples.html


JimBeam333 
Fragesteller
 21.08.2017, 20:01

Ich muss es leider selber schreiben aber danke trzd.

0
User16495  21.08.2017, 20:05
@JimBeam333

In welchem Rahmen? Du brauchst immer irgendeine Library für grafischen Output. Egal, ob Du jetzt Swift, JavaFX oder JFreeChart benutzt. Natürlich kannst Du auch in der Console viele Xe ausspucken, aber wer macht das bitte? :D

Eine Programmiersprache ist dafür da, Librarys zu benutzen.

0
PWolff  21.08.2017, 20:14
@User16495

Ist offensichtlich eine Hausaufgabe. Da muss man oft Dinge umsetzen, die schon längst in Bibliotheken erledigt sind.

2
User16495  21.08.2017, 20:18
@PWolff

Ja, aber selbst da glaube ich nicht, dass sie aus dem Nichts GUI-Elemente programmieren sollen :D

Dazu sind Bindings in das Betriebssystem notwendig, die noch nicht mal im Informatik-Master behandelt werden. Insofern ist die Aussage, dass keine Librarys verwendet werden dürfen, vermutlich falsch.

Man könnte noch mit JWindow und JFrame arbeiten, aber das will kein Prof, da bin ich mir ziemlich sicher.

Daher auch meine Nachfrage.

0