jfreechart
亂碼解決方法
整個圖示分成三部分chart title,chart 的plot還有chart的 legend三個部分需要對他們分別設定字型就對了。
先看解決方法( 把這幾個全部設定了,都搞定了就可以了):
標題亂碼
chart.gettitle().setfont(new font("宋體", font.bold,12));
其他 categoryaxis domainaxis = plot.getdomainaxis();
// numberaxis valueaxis=(numberaxis) plot.getrangeaxis();
//有人說這個是水平方向設定的 方法。
valueaxis numberaxis = plot.getrangeaxis();
/*------設定x軸座標上的文字-----------*/
domainaxis.setticklabelfont(new font("sans-serif", font.plain, 11));
/*------設定x軸的標題文字------------*/
domainaxis.setlabelfont(new font("宋體", font.plain, 12));
/*------設定y軸座標上的文字-----------*/
numberaxis.setticklabelfont(new font("sans-serif", font.plain, 12));
/*------設定y軸的標題文字------------*/
numberaxis.setlabelfont(new font("黑體", font.plain, 12));
/*------這句**解決了底部漢字亂碼的問題-----------*/
jfreechart
-1.0.10有人說沒有問題,但jfreechart
-1.0.11到13都有問題,我用的最新的jfreechart
-1.0.13不做設定是有問題的。
究其原因,是它**的內部設定的字型有問題.
先來跟蹤一下它的**:
jfreechart
chart = chartfactory.createbarchart(
"資料統計圖",
"裝置號",
"積累值",
dataset,
plotorientation.vertical,
true, true, false
); 它的原型
public static jfreechart
createbarchart(string title,
string categoryaxislabel,
string valueaxislabel,
categorydataset dataset,
plotorientation orientation,
boolean legend,
boolean tooltips,
boolean urls)
this.title = new texttitle(title, titlefont);
this.title.addchangelistener(this);
} 它使用了預設字型,因此要解決這個問題只要,對標題重新設定字型就可以了。
…… texttitle texttitle = chart.gettitle();
texttitle.setfont(new font("黑體", font.plain, 20));
圖例和其它亂碼一樣處理,更換字型。
categoryplot plot = chart.getcategoryplot(); //獲得圖表區域物件
categoryaxis domainaxis = plot.getdomainaxis();
domainaxis.setvisible(true);
plot.setdomainaxis(domainaxis);
valueaxis raxis = plot.getrangeaxis();
/*------設定x軸座標上的文字-----------*/
domainaxis.setticklabelfont(new font("宋體",font.plain,15));
/*------設定x軸的標題文字------------*/
domainaxis.setlabelfont(new font("宋體",font.plain,15));
/*------設定y軸座標上的文字-----------*/
raxis.setticklabelfont(new font("宋體",font.plain,15));
/*------設定y軸的標題文字------------*/
raxis.setlabelfont(new font("黑體",font.plain,15));
這裡需要注意的是,**出現了亂碼就修改**的字型,將字型轉換為系統有的就可以了。
另外有人提出將jfreechart
原始檔裡面的涉及到sansserif字型的地方都替換成中文字型在重新編譯,來個一勞永逸,我沒有試,不知可不可以,我主要採用了重新設定字型的方法
JfreeChart 解決中文亂碼問題
中文亂碼的解決方案 由於jfreechart元件的版本 操作平台 jdk的設定等因素,在使用jfreechart元件時可能會出現中文亂碼的現象。遇到此問題時,可通過設定亂碼文字的字型來解決。在此提供以下兩種解決此問題的方法。設定主題樣式 在製圖前,建立主題樣式並指定樣式中的字型,通過chartfac...
解決JfreeChart中文亂碼問題
jfreechart中文亂碼問題一直困擾很多的朋友,我學習得時候也一樣,下面幾段 可以用來解決這個問題。texttitle texttitle chart.gettitle texttitle.setfont new font 宋體 font.bold,20 legendtitle legend c...
jfreechart 亂碼問題
如果使用jfreechart預設的宣告方式建立出來的圖表上中文標題是方框或亂碼,這個不用說肯定和字型有關 接下來來看一下解決辦法 開啟doc檔案裡的texttitle類你會發現 the default font.public static final font default font new fo...