JFreeChart亂碼解決方法

2021-08-24 21:51:31 字數 2651 閱讀 8980

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...