2011-11-13 4 views
1

私は2つのエンティティクラスを持っています:AとBはBエンティティを持ち、Mapは次の形式で定義されています:Map<A, List<B>StackedBarChartの行キーがDefaultCategoryDataSetに追加されない

次のコードを使用して、すべての地図データをDefaultCategoryDatasetに追加します。たとえば、5 Aがあり、Aに4 Bがある場合は、25個の行キーが必要です。 (Aエンティティ番号*(各AのentityNumber + Bエンティティ番号)Aクラスを格納するRowキーは同じ幅でなければならず、Bエンティティを格納する他のすべての行の幅は同じでなければなりません。行キー((double)1 /(1 + bResultList .size())を追加し、A行キーを追加している間に値を小さくしながら同じ値を返します。

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
/** for each workpoint */ 
for (A aResult : map.keySet()) { 
    List<B> bResultList = map.get(aResult); 
    dataset.addValue(
     (double) 1/(1 + bResultList.size()), 
     "WorkPoint " + aResult.getTimeStep(), 
     "WP T=" + aResult.getTimeStep()); 
    /** for each contingency result */ 
    for (B bResult : bResultList) { 
     dataset.addValue(
      (double) 1/(1 + bResultList.size() + 6), 
      bResult.getName(), 
      "WP T=" + aResult.getTimeStep()); 
    } 
} 

しかし、私は私がデバッグする場合、データセットは、わずか9行を有する。格納されません。(全ての行のキーを設定されたデータへのすべての地図データを追加A1、B1、B2、B3、B4、A2、A3、A4 、A5)最初のAエンティティのBエンティティのみが行キーとして格納されます。他のAエンティティの他のBエンティティはデータベースに格納されません。

しかし、g raphでは、すべてのデータがグラフで表示されますが、間違った順序で表示されます。 注文は次のとおりです。

A1-B1-B2-B3-B4 
B1-B2-B3-B4-A2 
B1-B2-B3-B4-A3 
B1-B2-B3-B4-A4 
B1-B2-B3-B4-A5 

は、私はこの問題は明らかではない

A1-B1-B2-B3-B4 
A2-B1-B2-B3-B4 
A3-B1-B2-B3-B4 
A4-B1-B2-B3-B4 
A5-B1-B2-B3-B4 
+0

あなたが説明している問題を示す[sscce](http://sscce.org/)を提供してください。 – trashgod

答えて

1

不在のあなたのsscceのように表示したいです。異なるシリーズ(行)とカテゴリ(列)キーを持つthis oneなどの標準CategoryDatasetにデータセットを比較すると役立ちます。また、CategoryItemLabelGeneratorを追加すると、デバッグに役立つ場合があります。

renderer.setBaseItemLabelGenerator(
    new StandardCategoryItemLabelGenerator(
     "{0} {1} {2}", NumberFormat.getInstance())); 
renderer.setBaseItemLabelsVisible(true); 
関連する問題