jFreeChart in eine NetBeans Projekt integrieren

Rol

Aktives Mitglied
Hallo,

ich habe eine Netbeans Projekt mit einem GUI. Nun möchte ich an einer Stelle der oberfläche ein Balkendiagram darstellen. Jetzt ist dort erstmal nur eine JPanel als Platzhalter.

Ich würde das Balkendiagram gern mit jFreeChart erstellen. Ein Beispiel von dem aus ich mich rantasten könnte wäre hier: JFreeChart: Bar Chart Demo : Bar ChartChartJava

Jetzt habe ich aber keinen blassen Schimmer, wie ich das Diagramm auf meine Oberflächen (auf / in mein JPanel oder ???) bringe.

Gruß
Rol
 

Eldorado

Bekanntes Mitglied
Geht es jetzt um den GUI-Code oder wie du das Diagramm in Netbeans über die Oberfläche einfügen kannst?

Wenn Nr. 2 zutrifft und du keine Oberfläche ohne Netbeans schreiben kannst, würde ich empfehlen dies zu lernen.

Wenn Nr. 1 zutrifft, dann musst du ein Object von der Klasse Chart erstellen und dieses über add dem panel hinzufügen
 
T

Tomate_Salat

Gast
Ihn interessiert, ob du mit einer GUI auch ohne Editor arbeiten kannst. Falls nein, solltest du einen Schritt nach dem anderen machen und dich erstmal in GUI-Programmierung einarbeiten.
 

jgh

Top Contributor
grundsätzlich gebe ich meinen Vorrednern recht...aber^^ spass macht es aber mehr, wenn man einfach loscodet.

Hast du denn die JCommon.jar und JFreeChart.jar deinem Projekt hinzugefügt?
 

Rol

Aktives Mitglied
> Hast du denn die JCommon.jar und JFreeChart.jar deinem Projekt hinzugefügt?

Ja. habe ich.
Ich habe auch schon GUI's per Hand erstellt. Hier wollte ich aber eigentlich den GUI Builder benutzen. Das Projekt ist nicht besonders klar definiert, d.h. während des Entwickelns ändern sich Teile der Aufgabenstellung immer wieder und damit z.T. auch das GUI. Da hat man mit den Builder schnell mal ein Element rein geklickt oder verändert.
 

jgh

Top Contributor
und wo ist dein problem?
Wenn Nr. 1 zutrifft, dann musst du ein Object von der Klasse Chart erstellen und dieses über add dem panel hinzufügen

Java:
final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        
       deinPanel.add(chart);

entweder übernimmst du dann die Methoden aus dem Bsp 1:1, oder änderst es nach deinen wünschen ab...
 

Rol

Aktives Mitglied
Java:
final CategoryDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset);
        
       deinPanel.add(chart);

Das dachte ich auch, aber dann kommt der Fehler:

cannot find symbol
symbol: method add(org.jfree.chart.JFreeChart)
location: class javax.swing.JPanel
 

Rol

Aktives Mitglied
Ja, u.a. ist:
jcommon-1.0.16.jar
jfreechart-1.0.13.jar
geadded.

Ein Test-Chart kann ich auch erzeugen, in ein Image schreiben und diese Image in ein jLabel schreiben:
Java:
PieDataset dataset = createDataset();
JFreeChart chart = createChart(dataset, "foo");
BufferedImage image = chart.createBufferedImage(jLabel1.getWidth(),jLabel1.getHeight());
jLabel1.setIcon(new ImageIcon(image));

Ist zum Testen ein Kuchen, aber das ist ja egal.

Warum kann ich den Chart nicht an ein jPanel adden?
 

Rol

Aktives Mitglied
habe ich auch schon versucht:

Java:
        PieDataset dataset = createDataset();
        JFreeChart chart = createChart(dataset, "foo");

        ChartPanel chartPanel = new ChartPanel(chart);
        jPanel4.add(chartPanel);

Es wird kein Chart auf dem jPanel4 angezeigt :-(
 

Rol

Aktives Mitglied
GroupLayout, brauche ich einen anderen?

Java:
        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 325, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 161, Short.MAX_VALUE)
        );
 

Rol

Aktives Mitglied
Habe auch BorderLayout umgestellet-> jetzt geht es!

Vielen Dank!

Ich hoffe, ich komme mit dem Rest allein zurecht.
 

Jens81

Gesperrter Benutzer
Also ich adde meine JFreeCharts einfach mit
Java:
meinPanel.add(chart);

In meinem Beispiel habe ich aber ein null Layout verwendet und die Position mit setBounds gesetzt.
 
T

Tomate_Salat

Gast
@Rol: das sollte auch mit dem GroupLayout gehen, setze einfach mal eine preferedSize(Dimension)
@Jens81: bezweifel ich, wenn du wissen willst wieso, lese Post #11
 

jgh

Top Contributor
Tomate Salat hat Recht...mein Post war auch falsch, aber ohne eine IDE ist es manchmal etwas schwierig^^

ich dachte auch das JFreeChart direkt von Component erbt, bzw zumindest von JPanel...aber dafür braucht man das ChartPanel, shame on me :(
 

Jens81

Gesperrter Benutzer
Ich mache es schon so, wie ich geschrieben habe. Aber hab gerade gesehen, dass ich meine eigene ChartKlasse von JPanel ableite.

Java:
public class ChartAlterspyramide extends JPanel {
//...

Sorry
 

Rol

Aktives Mitglied
Java:
        PieDataset dataset = createDataset();
        JFreeChart chart = createChart(dataset, "foo");
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(200,200));
        jPanel4.add(chartPanel);

Der Chart wird mit GroupLayout nicht angezeigt, mit BorderLayout schon.
 
T

Tomate_Salat

Gast
Jou wenns mit BorderLayout läuft ists ja gut :). Ich arbeite nie mit GroupLayout, dachte das würde gehen mit der prefSize :-/.
 

Rol

Aktives Mitglied
Jetzt habe ich noch ein Problem:

Die Daten welche dem Chart zugrunde liegen ändern sich zur Laufzeit und dann soll sich natürlich auch der Chart ändern.

Ich habe als ersten Ansatz mal folgendes versucht:

Wenn sich die Daten geändert haben wird folgendes aufgerufen:
Java:
dataset = createDataset();
chart = createChart(dataset);
meinPanel.repaint();

Leider pssiert gar nichts.
 
T

Tomate_Salat

Gast
Was soll den passieren? hast du Daten überhaupt geändert?

Unser alter guter Freund die Api hat gesagt.:
The panel registers with the chart to receive notification of changes to any component of the chart. The chart is redrawn automatically whenever this notification is received.
das ChartPanel sollte automatisch merken, wenn änderungen vorliegen und zeichnet sich dann neu.
 

Rol

Aktives Mitglied
meine anzuzeigenden Daten befinden sich in einem arry namens "milliPipHisto".
So lade ich sie in ein dataset:

Java:
    private CategoryDataset createDataset() {
        // create the dataset...
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        DecimalFormat df = new DecimalFormat("0.00");
        for (int i = 0; i < milliPipHisto.length; i++) {
            dataset.addValue((milliPipHisto[i] / 1000000f), "", String.valueOf(i));
        }
        return dataset;
    }

Damit sich der Chart automatisch bei änderung des array "milliPipHisto" ändert müßte ich das wahrscheinlich anders machen... aber wie?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Wie lade ich eine CategoryDataset aus XML ins JFreeChart? AWT, Swing, JavaFX & SWT 9
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H JFreeChart Charts überlagern AWT, Swing, JavaFX & SWT 2
C JFreeChart x-Achse mit absteigenden Werten AWT, Swing, JavaFX & SWT 1
K JFreeChart nicht ohne BarChartDemo startklar? AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
B JFreeChart Gantt Höhe Tasks AWT, Swing, JavaFX & SWT 1
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
V JFreechart: In Linechart Linien einzeichnen und Bereiche färben AWT, Swing, JavaFX & SWT 4
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
M JFreechart Zoom out AWT, Swing, JavaFX & SWT 2
M Swing JFreechart X-Achse Tick auslesen AWT, Swing, JavaFX & SWT 13
M Swing JFreechart zoom x-achse neue Werte AWT, Swing, JavaFX & SWT 4
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
G JFreeChart - SetSeriesColor Problem AWT, Swing, JavaFX & SWT 3
K 2D-Grafik JFreeChart plot.setBackgroundImage() AWT, Swing, JavaFX & SWT 1
K 2D-Grafik JFreeChart DateAxis AWT, Swing, JavaFX & SWT 9
T Event Handling JFreeChart Update AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
A JFreeChart in GUI AWT, Swing, JavaFX & SWT 3
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
B JFreeChart-Erweiterungen AWT, Swing, JavaFX & SWT 4
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
I XML - JFreeChart AWT, Swing, JavaFX & SWT 15
N Dynamische JFreechart updated UI nicht AWT, Swing, JavaFX & SWT 5
S JFreeChart - Schriftgröße der Legende AWT, Swing, JavaFX & SWT 2
O Swing JFreechart subtitle formatieren AWT, Swing, JavaFX & SWT 3
N JFreeChart: Plot soll mit skalieren AWT, Swing, JavaFX & SWT 5
R JFreeChart Plots AWT, Swing, JavaFX & SWT 6
J JFreechart spezielles Balkendiagramm AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
T JFreeChart Linine einzeichnen AWT, Swing, JavaFX & SWT 2
M JFreeChart Ausrichtung der Balken AWT, Swing, JavaFX & SWT 2
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
A Swing JFreeChart, Gantt, Schichtplan AWT, Swing, JavaFX & SWT 3
R JFreeChart Skalierung zur Laufzeit ändern AWT, Swing, JavaFX & SWT 7
J JFreeChart - mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
A JFreeChart: 2 X-Achsen für ein Dataset AWT, Swing, JavaFX & SWT 2
T JFreeChart export Problem AWT, Swing, JavaFX & SWT 4
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
D JFreechart maximalangezeigter Wertebereich AWT, Swing, JavaFX & SWT 3
B AWT [JFreeChart] malt nicht so wie ich will :-( AWT, Swing, JavaFX & SWT 2
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
L Labels sichtbar - JFreeChart AWT, Swing, JavaFX & SWT 5
A Schachbrettartiges Diagramm mit JFreeChart AWT, Swing, JavaFX & SWT 4
E JFreeChart AWT, Swing, JavaFX & SWT 2
L Gantt Chart - JFreeChart AWT, Swing, JavaFX & SWT 5
K JFreeChart im JScrollPane ausblenden AWT, Swing, JavaFX & SWT 2
L JFreeChart Labelrotation AWT, Swing, JavaFX & SWT 2
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
L JFreeChart Balkenanordnung AWT, Swing, JavaFX & SWT 10
L JFreeChart Achsenskalierung AWT, Swing, JavaFX & SWT 4
L JFreeChart - Dataset befüllen AWT, Swing, JavaFX & SWT 2
L JFreeChart - Line Shapes AWT, Swing, JavaFX & SWT 15
N JFreeChart - Basics AWT, Swing, JavaFX & SWT 2
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
L JFreeChart - Legende vertikal AWT, Swing, JavaFX & SWT 5
L JFreeChart - Linienstärke einstellen AWT, Swing, JavaFX & SWT 2
L JFreeChart Einstellungen AWT, Swing, JavaFX & SWT 22
L JFreeChart - Gitterfarbe schwarz AWT, Swing, JavaFX & SWT 4
L JFreeChart StackedBar + Line-Chart kombinieren AWT, Swing, JavaFX & SWT 4
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
L JFreeChart - Legende beliebig positionieren AWT, Swing, JavaFX & SWT 16
G JFreechart Balken einfärben AWT, Swing, JavaFX & SWT 6
F Probleme mit NumberAxis bei JFreeChart AWT, Swing, JavaFX & SWT 5
G jfreechart (Diagramm speichern mit ein vorgegebenen Namen) AWT, Swing, JavaFX & SWT 6
S JFreeChart neu zeichnen sich das Datenset geändert hat. AWT, Swing, JavaFX & SWT 4
K JFreeChart Eigentschaften des Charts ändern AWT, Swing, JavaFX & SWT 8
G JFreeChart und das updaten AWT, Swing, JavaFX & SWT 7
G Ausser Jfreechart, Chart Programme? AWT, Swing, JavaFX & SWT 11
S Dimensionen JFreeChart AWT, Swing, JavaFX & SWT 5
S JFreeChart Stufendiagramm AWT, Swing, JavaFX & SWT 2
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
M JFreeChart Handbuch? AWT, Swing, JavaFX & SWT 8
P JFreeChart - TimeSeriesDiagram AWT, Swing, JavaFX & SWT 2
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Lukas2904 Wie speicher ich eine Einstellung? AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben