Ошибка с настройщиком класса для диаграмм - PullRequest
0 голосов
/ 25 августа 2011

Я хочу настроить свои диаграммы, чтобы использовать настройщик классов, Я использовал следующий код, чтобы изменить метку категории на вертикальную, но я не знаю, почему она выдает ошибку!

код:

 public void customize(JFreeChart jfc, JRChart jrc) {
  CategoryPlot myPlot = jfc.getCategoryPlot();
  HorizontalCategoryAxis axis = (HorizontalCategoryAxis)myPlot.getDomainAxis();
  axis.setVerticalCategoryLabels(true);
 } 

ошибка:

 cannot find symbol : Class HorizontalCategoryAxis

Также я попробовал:

    CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
    CategoryItemLabelGenerator generator = new   StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.00"));
    renderer.setLabelGenerator(generator);
    renderer.setItemLabelsVisible(true);
    XYItemRenderer renderer2 = (XYItemRenderer) plot.getRenderer();
    XYItemLabelGenerator generator2 = new StandardXYItemLabelGenerator("{2}", new  DecimalFormat("0.00"));
    renderer.setLabelGenerator(generator);

и ошибки:

не удается найти символ появляется для строки:

renderer.setLabelGenerator(generator);

и

нет подходящего конструктора для

XYItemLabelGenerator generator2 

моя ссылка:

http://files.blogjava.net/hao446tian/jfreechart-1.0.1-US_developer_guide.pdf

UPDATE Тем не менее я не могу увидеть выражение категории (по оси Y): (((

enter image description here

1 Ответ

2 голосов
/ 26 августа 2011

Во-первых, ваш ошибочный код кажется несовпадением версий между вашими примерами и используемой вами библиотекой. Метод setLabelGenerator был удален и заменен на setBaseItemLabelGenerator:

CategoryPlot plot = yourPlot;
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
CategoryItemLabelGenerator generator = new   StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.00"));
renderer.setBaseItemLabelGenerator(generator);
renderer.setBaseItemLabelsVisible(true);
XYItemRenderer renderer2 = (XYItemRenderer) plot.getRenderer();
XYItemLabelGenerator generator2 = new StandardXYItemLabelGenerator("{2}", 
        new  DecimalFormat("0.00"),
        new  DecimalFormat("0.00"));
renderer.setBaseItemLabelGenerator(generator);

Вы можете видеть в моем примере, что StandardXYItemLabelGenerator принимает два формата, один для значений x и один для y.

Что касается использования HorizontalCategoryAxis, то постигла та же участь, что и setLabelGenerator. Предполагая, что вам нужен вертикальный график с CategoryAxis, который имеет метки вертикальные, а не горизонтальные, вы можете использовать setLabelAngle для достижения желаемого эффекта:

public void customize(JFreeChart jfc, JRChart jrc) {
    CategoryPlot myPlot = jfc.getCategoryPlot();
    CategoryAxis axis = myPlot.getDomainAxis();
    axis.setLabelAngle(-Math.PI / 2);
}
...