2012-05-06 20 views
0

私はJavaでJFreeChartを使ってグラフを描こうとしています!dataset JFreeChartとMySQL DBを使ってグラフを描く

私がグラフで使用するデータは、DBからのものです。

多くのタイプのpannesというテーブルがあります。それぞれのタイプのパンを数えて、JFreeChartのメソッドを使用してdataSetに追加します。

私の問題は、出力で何も得られなかったことです。

ここにコードがあります。

for (int i =0 ; i<typesPannes.length ; i++)  
{ 
    ResultSet res = st.executeQuery(req+" and typeDerang = '"+typesPannes[i]+"'"); 
    System.out.println(req+" and typeDerang = '"+typesPannes[i]+"'"); 
    int count=0; 
    while (res.next()) { count++ ; } 
    System.out.println(count) ; 
    dataset.setValue(count, " " , typesPannes[i]); 
}  
    JFreeChart chart = ChartFactory.createBarChart ("BarChart using JFreeChart","row", "col", dataset, 
    PlotOrientation.VERTICAL, false,true, false); 
    chart.setBackgroundPaint(Color.yellow); 
    chart.getTitle().setPaint(Color.blue); 
    CategoryPlot p = chart.getCategoryPlot(); 
    p.setRangeGridlinePaint(Color.red); 
    ChartPanel ch1=new ChartPanel(chart); 
    panel.add(ch1); 

データセットに問題がありますか....お気軽にお問い合わせください!

dataset.setValue(count、 ""、typesPannes [i]);

ありがとうございました!

+0

「COUNT(*)」SQL関数がどのように機能するかを知りたいかもしれません。 –

+0

「私は何の出力も得られませんでしたか?」とはどういう意味ですか?何か例外はありますか?グラフが空白またはその他の問題が表示されますか?詳しく教えてください。 –

+0

エラーはありません!私が実行したpannesクエリーのSystem.out.printlnを作成したコンソールとそのカウント数、私がチャートをまだ空にしたいと思っているpannelを見てください! – joujou

答えて

1
dataset.setValue(count, " " , typesPannes[i]); 

で交換してみてください:あなたが唯一のカテゴリが、複数のシリーズを持っていたよう

dataset.setValue(count, typesPannes[i], ""); 

スクリーンショットを表示した後に編集: panel.add(ch1);を置き換えると、グラフがうまく表示されます。グラフを含む新しいJFrameを使用します。 パネルがメインフレームに既に追加されているか、再ペイントされていないかどうかを確認する必要があります。メインフレームのサイズ変更を試すことができます。また、単純なJLabelを追加して、グラフを追加する前にフレームに正しく表示されていることを確認することもできます。

+0

同じ問題! :(( – joujou

+0

)私はChartFrameを使用しました.Ch1 =新しいChartFrame( "chart"、chart); ch1.s​​etBounds(10、10、700、500); ch1.s​​etVisible(true) )今私はパネルに埋め込みたい! 助けてくれてありがとう:))))))) – joujou

関連する問題