2010-09-14 3 views
1

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

Спасибо заранее!

+0

Правильно ли, что вы хотите, чтобы нажать на URL в ярлыке для того, чтобы открыть URL в браузере? – trashgod

+0

Да, это верно. –

+0

И для уточнения вашей диаграммы на веб-странице или в качелях? – Adam

ответ

0
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."); 
    } 
} 
1

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

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

Дополнение:

Я ищу для URL/гиперссылкой.

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

+0

Я бы предположил, что это даст мне String Label. Я ищу URL/гиперссылку. –

+0

@gpmattoo: просто установите для URL то же значение, что и метка. – trashgod

+0

Если вы можете поделиться фрагментом кода, который вы указали выше, это может помочь. Обратите внимание, что я использую JDK 1.4. –

0

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

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

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

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

Override generateURL

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

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

Для добавления адреса в ярлыке

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

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

Я бы предположил, что это будет для генератора URL-адресов для PIE Charts. Тем не менее, я ищу URL для Pie Labels, т.е. пользовательский класс, реализующий интерфейс PieSectionLabelGenerator http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/labels/PieSectionLabelGenerator.html или что-то в этом роде , –

+0

@gpmatto Ах, извините, неверно. Позвольте мне просто написать новый ответ для этого. – Adam

Смежные вопросы