- PR -

JFreeChart(1.0.1)でのグラフへのリンク設定について

1
投票結果総投票数:7
java 0 0.00%
JFreeChart 5 71.43%
Servlet 0 0.00%
jsp 2 28.57%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
kumakuma
会議室デビュー日: 2003/12/15
投稿数: 4
投稿日時: 2006-05-31 17:01
お世話になっております。

早速ですが、皆さんのお知恵をお貸しください。
JFreeChart(1.0.1)を使用して、Webブラウザにグラフを表示させるプログラムを作成しております。
グラフにリンクを設定する方法をご教授願います。

グラフは横棒グラフ(createBarChart3D)を使用しております。
各グラフに指定のURLへのリンクを張りたいのですが、方法が良く分かりません。
円グラフの場合ですと、@IT様の連載記事(http://www.atmarkit.co.jp/fjava/javatips/127jspservlet45.html)にもあるとおり
「setURLGenerator」というメソッドがあり、これを利用して作成が可能のようですが、
棒グラフには対象となるメソッドが見当たりませんでした。
また、createBarChart3Dの引数として、ツールチップス、URLの設定(「true」を設定しています)が存在しているということは、グラフにリンクを張る機能があると考えているのですが。

コード内容はほぼ上記にも記載致しました、@IT様の記事内容を円グラフから棒グラフ(createBarChart3D)に変更している程度となっております。

どうぞ、宜しくお願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-05-31 18:39
AbstractCategoryItemRenderer#setItemURLGeneratorメソッドを使用して、
CategoryURLGeneratorのインスタンスを設定するとOKです。
kumakuma
会議室デビュー日: 2003/12/15
投稿数: 4
投稿日時: 2006-05-31 19:43
かつのり様
早速のご回答有難う御座います。

理解不足で申し訳ないのですが、下記のクラス、メソッドについての使い方がいまいち理解できません。

まず、CategoryURLGeneratorのインスタンスを生成することができず、
悩んでおります。
現状エラーが発生して、コンパイルできないのですが、例を挙げると以下のようになるのでしょうか?

【@ITさんの記事】
PiePlot objPp=(PiePlot)objCht.getPlot();
objPp.setURLGenerator(new StandardPieURLGenerator("link.jsp"));

【下記対応内容】
AbstractCategoryItemRenderer acir = null;
acir.setItemURLGenerator(new CategoryURLGenerator("link.jsp"));


ものすごく、基本的なことの様な気がしますが、
宜しくお願い致します。


引用:

かつのりさんの書き込み (2006-05-31 18:39) より:
AbstractCategoryItemRenderer#setItemURLGeneratorメソッドを使用して、
CategoryURLGeneratorのインスタンスを設定するとOKです。


かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-05-31 21:13
コード:
JFreeChart chart = <省略>
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryItemRenderer renderer = plot.getRenderer();
renderer.setItemURLGenerator(new CategoryURLGenerator(){
    public String generateURL(CategoryDataset data,
                             int series,int category){
        return <省略>
    }
});


って感じでいけませんか?

AbstractCategoryItemRendererではなくて、CategoryItemRendererでしたね。
すみません。

余談ですが、JFreeChartを使うときに、付属のdemoのコードを
JAD等でリバースすると、参考になりますよ。
(もしかしたら、ダメなのかもしれませんが・・・)
kumakuma
会議室デビュー日: 2003/12/15
投稿数: 4
投稿日時: 2006-06-01 17:40
かつのり様

丁寧なご回答有難う御座います。

提示頂きましたコードでServlet側はエラー無く通る事ができました。
有難う御座います。

現在JSP経由で表示させているのですが、
また、グラフを表示することが出来ておりません。
横棒グラフだけであれば表示できるのですが、リンクを張ろうと対応すると表示領域に×マークが表示され出力されません。
データ自体は問題ないように思うのですが・・・
過去のスレッド「JFreeChartのクリッカブルマップ表示」でもあるように、
JSP側に問題があるのか現在調べているところですが、
何かアドバイスなど御座いましたら、お願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-06-01 23:05
表示領域にXマークって言う事は、
ブラウザが解釈しているHTMLのIMGタグのSRC属性が示すアドレスによって、
画像を探しに行っても画像がないということです。
サーバ云々の問題ではありません。

例えばTomcatを使うと、アプリケーションルートの直下はWEB-INF配下じゃなければ、
ブラウザでそのままアクセスする事ができますが、
その場所に画像を作成していますか?
また、その場所を示すURLが正しく作られていますか?

#酔っ払っているので、支離滅裂だったらごめんなさい・・・
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2006-06-02 09:52
JFreeChart用のタグライブラリの Cewolf のソースコードが参考になるかもしれません。

http://sourceforge.net/projects/cewolf/
kumakuma
会議室デビュー日: 2003/12/15
投稿数: 4
投稿日時: 2006-06-02 12:19
かつのりさん、ひろさん

色々と、助言を頂きまして有難う御座います。
なんとか、解決することができました。
まとめて変更してしまったので、原因は現段階では不明ですが、
これから、切り分けして調査しようと考えております。


色々と有難う御座いました。
1

スキルアップ/キャリアアップ(JOB@IT)