【问题标题】:Changing color of labels in JFreeChart更改 JFreeChart 中标签的颜色
【发布时间】:2011-01-30 23:23:40
【问题描述】:

任何有使用 JFreeChart 经验的人,有没有办法改变我的 XY 轴标签的颜色。现在我正在使用XYPlot,并且我想更改轴上标签的颜色。有没有办法做到这一点?

【问题讨论】:

    标签: java jfreechart


    【解决方案1】:

    您应该能够在所需的Axis 上使用setTickLabelPaint()

    【讨论】:

    • 谢谢你回答了我的问题。对于遇到此问题的其他人,我对 XYPlot 的 getDomainAxis() 返回一个 ValueAxis 的事实感到有些困惑。但是我查看了文档并意识到 Valueaxis 是 Axis 的子类。
    • 优秀。 JFreeChart 的一个不错的功能是 API 文档是使用 linksource 选项构建的,因此您可以通过单击名称进行导航。
    • 是否可以在一个标签内更改油漆颜色?例如。标签的第一个单词是黑色,第二个单词是灰色?
    • 我似乎记得支持AttributedString,但我没有尝试过。
    【解决方案2】:

    我使用此代码更改了所有标签的颜色:

    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);
    }
    

    如果你使用字幕,你也需要添加它们。

    【讨论】:

      猜你喜欢
      • 2022-07-20
      • 2021-07-04
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2012-10-12
      相关资源
      最近更新 更多