2011-08-25 20 views
0

我想定製我的圖表,因此我想使用類定製工具 我已經使用以下代碼將類別標籤更改爲垂直,但我不知道它爲什麼會生成錯誤!圖表類定製工具出錯

代碼:

public void customize(JFreeChart jfc, JRChart jrc) { 
    CategoryPlot myPlot = jfc.getCategoryPlot(); 
    HorizontalCategoryAxis axis = (HorizontalCategoryAxis)myPlot.getDomainAxis(); 
    axis.setVerticalCategoryLabels(true); 
} 

的錯誤是:

cannot find symbol : Class HorizontalCategoryAxis 

此外,我曾嘗試:

CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer(); 
    CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.00")); 
    renderer.setLabelGenerator(generator); 
    renderer.setItemLabelsVisible(true); 
    XYItemRenderer renderer2 = (XYItemRenderer) plot.getRenderer(); 
    XYItemLabelGenerator generator2 = new StandardXYItemLabelGenerator("{2}", new DecimalFormat("0.00")); 
    renderer.setLabelGenerator(generator); 

和錯誤:

找不到符號出現的行:

renderer.setLabelGenerator(generator); 

沒有合適的構造

XYItemLabelGenerator generator2 

我的參考文獻是:

http://files.blogjava.net/hao446tian/jfreechart-1.0.1-US_developer_guide.pdf

UPDATE 我仍然看不到categorieExpression(Y軸):(的所有失敗的代碼((

enter image description here

+0

的錯誤是,這似乎是'Horizo​​ntalCategoryAxis'不你的班級路徑。確保你的類路徑中有所有合適的罐子。 – Jes

+0

[使用Cutomiser圖表類的步驟是什麼?](http://stackoverflow.com/questions/7173261/what-are-the-steps-to-use-cutomiser-chart-class) – trashgod

+0

@Jes ,我已經添加JfreChart.jar到我的項目,我應該添加別的東西嗎? – rym

回答

2

首先似乎是你的例子和圖書館你們之間版本不匹配使用。該setLabelGenerator方法已被刪除,取而代之的是setBaseItemLabelGenerator

CategoryPlot plot = yourPlot; 
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer(); 
CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.00")); 
renderer.setBaseItemLabelGenerator(generator); 
renderer.setBaseItemLabelsVisible(true); 
XYItemRenderer renderer2 = (XYItemRenderer) plot.getRenderer(); 
XYItemLabelGenerator generator2 = new StandardXYItemLabelGenerator("{2}", 
     new DecimalFormat("0.00"), 
     new DecimalFormat("0.00")); 
renderer.setBaseItemLabelGenerator(generator); 

你可以在我的例子中看到,StandardXYItemLabelGenerator採用兩種格式,一個x值和一個y的。

至於使用HorizontalCategoryAxis它遭受了與setLabelGenerator一樣的命運。假設你想用一個CategoryAxis有是垂直的,不是水平的,你可以使用setLabelAngle達到預期的效果標籤垂直情節:

public void customize(JFreeChart jfc, JRChart jrc) { 
    CategoryPlot myPlot = jfc.getCategoryPlot(); 
    CategoryAxis axis = myPlot.getDomainAxis(); 
    axis.setLabelAngle(-Math.PI/2); 
} 
+0

,我試過了你的答案,錯誤消失了,報告生成了,我將用報告更新我的帖子,它仍然是一團糟! – rym

+0

似乎沒有設置標籤角度。你確定類別軸沒有設置在其他地方嗎?嘗試在'setLabelAngle'的主體中設置一個斷點。 – Jes

+0

你好,是的,你是對的:),最終的問題可以在使用相同的class custoiser barChart 3D? – rym