java 如何在JFreeChart中为类别标签制作不同的字体

xjreopfe  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(161)

我有一个基准得分列表和一两个选定的智能手机,所以我需要突出显示这些智能手机。我已经用不同的颜色栏做了这一点,但我还想改变智能手机名称的字体-至少要加粗,但仅限于选定的智能手机,而不是整个类别标签。

我使用下面的代码来绘制条形图,但我不知道如何自定义类别标签的字体:

public class MyBarRenderer extends StackedBarRenderer {
    //BarRenderer renderer = (BarRenderer) plot.getRenderer();
    private ArrayList<Integer> selectedSmartphones;
    public MyBarRenderer (ArrayList<Integer> s) {
        selectedSmartphones = s;

        this.setSeriesPaint(0, new Color(255,133,0));
        this.setSeriesPaint(1, new Color(255,172,83));
        this.setSeriesPaint(2, new Color(211,110,0));
    }

    //renderer.setSeriesPaint(0, Color.getColor("FFAC53"));
    @Override
    public Paint getItemPaint(int series, int category) {
        if (selectedSmartphones.contains(category)) {

                switch (series) {
                    case 0:
                        return new Color(81, 189, 230);

                    case 1:
                        return new Color(7, 167, 229);

                    case 2:
                        return new Color(2, 97, 133);

                    default:
                        return Color.blue;
                }

        } else {
                switch (series) {
                    case 0:
                        return new Color(255, 133, 0);

                    case 1:
                        return new Color(255, 172, 83);

                    case 2:
                        return new Color(211, 110, 0);

                    default:
                        return Color.orange;
                }
        }
    }
}

xcitsw88

xcitsw881#

我找到了我整个星期都在寻找的答案。

CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setTickLabelFont(strMyCategory,
    new Font("Arial", Font.BOLD, 13));

其中strMyCategoryComparable类型String)是需要加粗或使用其他字体的确切类别标签。

相关问题