Создание URL-адресов для метки сечения круговой диаграммы с использованием JFree Chart API - PullRequest
1 голос
/ 14 сентября 2010

Как создать URL для меток для круговых диаграмм с использованием пакета JFree Chart. Мы можем расширить PieSectionLabelGenerator, но мне нужны примеры, чтобы показать, как это сделать.Пожалуйста, совет!

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 14 сентября 2010

Просто вызовите setLabelGenerator() на вашем PiePlot.Значения MessageFormat ArgumentIndex соответствуют именам серий , , значению и в процентах .Вы можете ссылаться на них в генераторе меток, как показано ниже:

PiePlot plot = (PiePlot) chart.getPlot();
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {1} {2}"));

Приложение:

Я ищу URL / гиперссылку.

Добавьте ChartMouseListener к вашему ChartPanel;Вы можете получить ссылку из ChartEntity соответствующего ChartMouseEvent.Вы можете использовать java.awt.Desktop, чтобы открыть URL в браузере.

0 голосов
/ 30 января 2011
static class CustomLegendGenerator
        implements PieSectionLabelGenerator {

    public String generateSectionLabel(final PieDataset dataset, final Comparable key) {
        String temp = null;
        if (dataset != null) {
            temp = key.toString();
            if (key.toString().equalsIgnoreCase("abc")) {
                temp = temp + " (abc String)";
            }
            if (key.toString().equalsIgnoreCase("xyz")) {
                temp = temp + " (xyz description)";
            }
            if (key.toString().equalsIgnoreCase("klm")) {
                temp = temp + " (Klm description)";
            }
        }
        return temp;
    }

    public AttributedString generateAttributedSectionLabel(PieDataset pd, Comparable cmprbl) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
0 голосов
/ 15 сентября 2010

Обратите внимание, что этот ответ предназначен для тех, кто создает URL-адреса и карты для диаграмм, используемых на веб-страницах

Для создания сегментов пирога Сами URL-адреса с помощью карты HTML: Я бы посоветовал вам продлить StandardPieURLGenerator.Тогда вам нужно сделать только две вещи:

Добавить данные

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

Переопределить generateURL

generateURL будет вызываться, когда JFreeChart хочет, чтобы генератор создал URL-адрес.Если вы хотите добавить параметры, я бы сделал что-то вроде этого:

public String generateURL(PieDataset dataset, Comparable key, int pieIndex)
{
  return super.generateURL(dataset, key, pieIndex) + "&" + yourParameters;
}

Чтобы добавить URL-адреса в метке

Расширить StandardPieSectionLabelGeneratorи вместо этого переопределите generateAttributedSectionLabel для тех же самых шагов выше.Ваша функция теперь будет выглядеть примерно так:

public String generateAttributedSectionLabel(PieDataset dataset, Comparable key)
{
  return super.generateAttributedSectionLabel(dataset, key) + "<a href="YOUR_URL_HERE" />";
}
...