1

JFree Chartパッケージを使用して円グラフのラベルのURLを生成する方法。PieSectionLabelGeneratorを拡張できますが、その方法を示す例が必要です。ご意見をお聞かせください!

前もって感謝します!

4

3 に答える 3

1

を呼び出すだけsetLabelGenerator()ですPiePlotMessageFormat ArgumentIndex値は、シリーズ、およびパーセンテージに対応します。以下に示すように、ラベルジェネレータでそれらを参照できます。

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

補遺:

URL/ハイパーリンクを探しています。

にを追加ChartMouseListenerしますChartPanel; ChartEntity対応するのからリンクを取得できますChartMouseEventjava.awt.DesktopブラウザでURLを開くために使用できます。

于 2010-09-14T01:24:10.920 に答える
0

この回答は、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" />";
}
于 2010-09-14T21:40:15.963 に答える
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.");
    }
}
于 2011-01-30T09:33:03.040 に答える