2010-03-23 16 views
7

Jeder, der Erfahrung mit JFreeChart hat, gibt es eine Möglichkeit, die Farbe meiner Etiketten für meine XY-Achsen zu ändern. Im Moment verwende ich eine XYPlot und ich möchte die Farbe der Etiketten auf meinen Achsen ändern. Gibt es eine Möglichkeit, dies zu tun?Ändern der Farbe von Etiketten in JFreeChart

Antwort

8

Sie sollten setTickLabelPaint() auf dem gewünschten Axis verwenden können.

+1

Vielen Dank, dass meine Frage beantwortet. Für alle anderen mit diesem Problem bin ich ein wenig festgefahren mit der Tatsache, dass XYPlots getDomainAxis() eine ValueAxis zurückgibt. Aber ich schaute auf die Dokumentation und erkannte, dass Valueaxis eine Kindklasse von Axis ist. – Albinoswordfish

+1

Ausgezeichnet. Ein nettes Feature von 'JFreeChart' ist, dass die API-Dokumente mit der Option' linksorce' erstellt werden, so dass Sie navigieren können, indem Sie auf Namen klicken. – trashgod

+0

Ist es möglich, die Farbe innerhalb eines Etiketts zu ändern? Z.B. erstes Wort des Labels in Schwarz und das zweite Wort in Grau? – CGFoX

0

habe ich diesen Code die Farbe aller meiner Etiketten zu ändern:

private void setFontColor(Color fontColor) { 
    JFreeChart chart = getChart(); 
    chart.getTitle().setPaint(fontColor); 
    Plot plot = chart.getPlot(); 
    if (plot instanceof CategoryPlot) { 
     setAxisFontColor(((CategoryPlot) plot).getDomainAxis(), fontColor); 
     setAxisFontColor(((CategoryPlot) plot).getRangeAxis(), fontColor); 
    } else if (plot instanceof XYPlot) { 
     setAxisFontColor(((XYPlot) plot).getDomainAxis(), fontColor); 
     setAxisFontColor(((XYPlot) plot).getRangeAxis(), fontColor); 
    } 
} 

private void setAxisFontColor(Axis axis, Color fontColor) { 
    if (!fontColor.equals(axis.getLabelPaint())) 
     axis.setLabelPaint(fontColor); 
    if (!fontColor.equals(axis.getTickLabelPaint())) 
     axis.setTickLabelPaint(fontColor); 
} 

Wenn Sie Untertitel verwenden, müssen Sie sie auch addieren.

Verwandte Themen