Neue Version JFreeChart grauer Hintergrund?!

Orb

Mitglied
Guten Morgen alle zusammen,

ich habe mir für ein Programm zwangsweise eine aktuellere Version von JFreeChart einbinden müssen. Könnte mir jemand erklären woran es liegt, dass auf einmal alle meine
Hintergründe ( bei denen ich JFreeChart verwende ) grau sind, bzw. wie ich das Ganze wieder beheben kann?

Grüße Orb
 
Howdie.

Es gibt mehrere Stellen, an denen das liegen kann.
Ein paar Möglichkeiten zum Ausprobieren:
  1. Setze den Hintergrund der umgebenden Komponente (was vermutlich entweder ein ChartPanel oder ein JPanel ist) auf durchsichtig (myPanel.setOpaque(false)).
  2. Setze direkt beim erzeugten Chart den Hintergrund auf auf null (myChart.setBackgroundPaint(null)).
Mehr weiß ich aus dem Kopf grad nicht. Falls das nicht funktioniert, meld dich nochmal.

Gruß
miffi
 
Heyho,

Danke für die schnelle Antwort, jedoch hat mir das nichts gebracht =/
Haste vielleicht noch ein paar schlaue ideen?

Grüße, Orb.
 
Hmm, seltsam. Ich hab JFreeChart inzwischen öfter im Einsatz, und stets mit transparentem Hintergrund. Dafür muss ich nur oben genannte Eigenschaften setzen, dann geht das.

Kannst du vielleicht mal ein bissl Code posten? Das würde die Fehlersuche doch um einiges erleichtern...

Gruß
miffi
 
Hey hier ein wenig Code: das ist unter Anderen eine Stelle
Kann auch sein das ich irgendeinen Anfängerfehler gemacht habe, vielleciht wirst du ja fündig =)

Die Methode zum ersellen des Charts

Java:
    public static JFreeChart createTimeSeriesChart(String title,
                                                   String timeAxisLabel,
                                                   String valueAxisLabel,
                                                   XYDataset dataset,
                                                   boolean legend,
                                                   boolean tooltips,
                                                   boolean urls) {

        ValueAxis timeAxis = new DateAxis(timeAxisLabel);
        timeAxis.setLowerMargin(0.02);  // reduce the default margins
        timeAxis.setUpperMargin(0.02);
        NumberAxis valueAxis = new NumberAxis(valueAxisLabel);
        valueAxis.setAutoRangeIncludesZero(false);  // override default
        XYPlot plot = new XYPlot(dataset, timeAxis, valueAxis, null);

        XYToolTipGenerator toolTipGenerator = null;
        if (tooltips) {
            toolTipGenerator
                = StandardXYToolTipGenerator.getTimeSeriesInstance();
        }

        XYURLGenerator urlGenerator = null;
        if (urls) {
            urlGenerator = new StandardXYURLGenerator();
        }

        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,
                false);
        renderer.setBaseToolTipGenerator(toolTipGenerator);
        renderer.setURLGenerator(urlGenerator);
        plot.setRenderer(renderer);

        JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT,
                plot, legend);
        currentTheme.apply(chart);
        return chart;

und das binde ich dann einfach mit einem ChartPanel ein:

Java:
ChartPanel xPanel = new ChartPanel( xChart2, 300, 400, 300, 400, 1600, 2560, true, false, true, true, false, true );
 

Anhänge

  • GrauerHintergrund.JPG
    GrauerHintergrund.JPG
    13 KB · Aufrufe: 10
Zuletzt bearbeitet von einem Moderator:
Also einen Fehler kann ich bei der Erzeugung des Charts nicht finden.
Der Code unterscheidet sich auch nicht sonderlich von dem, den ich selbst oft bei einfachen Charts verwende. Daher verstehe ich nicht, warum meine obigen Tipps nicht funktionieren. Deshalb muss ich nochmal nachhaken:

Redest du von dem grauen Hintergrund des Charts selbst? Also der Teil, in dem der Graph gezeichnet wird? Der müsste sich beispielsweise mit chart.setBackgroundPaint(null) oder chart.setBackgroundPaint(Color.white) beeinflussen lassen.

Oder redest vom Hintergrund des ganzen Panels? Das wäre dann dein ChartPanel, was du mit xPanel.setOpaque(false) transparent machen könntest.
 
Ich meine den Hintergrund des Digramms, also das dunklere Grau.
( wenn du dir meinen Anhang vom letztenn post angschaust =) )
Wenn ich mich nciht irre bezieht sich chart.setBackgroundPaint(null) auf das Panel dann, zu mindest bei mir =D wobei es sein kann, dass ich da schon was verfuscht habe :eek:
 
Also dieses dunkel Grau ist meines Wissens die default-Farbe für JFreeCharts. Wenn es sich nicht über setBackgroundPaint(Color c) ändern lässt (hast schon versucht damit eine andere Farbe als null zu setzen?), muss du vielleicht was beim Renderer konfigurieren...

Hier bin ich mit meinem JFreeChart-Latein am Ende, sorry. Da müsste ich grad die Doku wälzen, wozu mir allerdings die Zeit fehlt.

Gruß und viel Erfolg,
miffi
 
  • Gefällt mir
Reaktionen: Orb
hmm ich bin gerade auf die StandardChartTheme Klasse gestoßen wenn ich etwas finde werd ich bescheid sagen =). aber trotzdem danke, dass du dir die Zeit genommen hast =)

Grüße Orb
 
Für die, die vlielleicht irgendwann mal auf ein ähnliches Problem stoßen:
Man kann auf ChartFactory setTheme() (oder so ähnlich) aufrufen da kann man dann je nach dem was man haben will, die Diagramme farblich etc. verändern =)

Grüße, Orb
 
Zurück