JFree Chartパッケージを使用して円グラフのラベルのURLを生成する方法。PieSectionLabelGeneratorを拡張できますが、その方法を示す例が必要です。ご意見をお聞かせください!
前もって感謝します!
JFree Chartパッケージを使用して円グラフのラベルのURLを生成する方法。PieSectionLabelGeneratorを拡張できますが、その方法を示す例が必要です。ご意見をお聞かせください!
前もって感謝します!
を呼び出すだけ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を開くために使用できます。
この回答は、Webページで使用されるチャートのURLとマップを作成する人を対象としていることに注意してください
HTMLマップを使用してパイセグメント自体のURLを作成する場合:
実際にを拡張することをお勧めしますStandardPieURLGenerator
。次に、2つのことを行うだけで済みます。
データを追加する
コンストラクター引数またはセッターのいずれかを使用して、クラス内のフィールドにデータを追加する方法を作成します。
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" />";
}
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.");
}
}