我有一个基准分数列表和一两个选定的智能手机,所以我需要突出显示这些智能手机。我已经用不同的条形颜色做到了这一点,但我还想更改智能手机名称的字体——至少将其设为粗体,但仅限于选定的智能手机,而不是整个类别标签。
绘制条形图我使用下面的代码,但我也不知道如何自定义类别标签的字体:
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;
}
}
}
}
我找到了整个星期都在寻找的答案。
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setTickLabelFont(strMyCategory,
new Font("Arial", Font.BOLD, 13));
其中
strMyCategory
(Comparable
类型String
)是需要加粗或使用其他字体的确切类别标签。