JFreeChartは中国語の文字化けし解決方案を生成する
2479 ワード
詳細
JFreeChartを使ってグラフを生成する時、グラフの中の漢字は1つ1つの“口”で、正常に表示していないで、とても憂鬱で、インターネットで方案を探して、あるのはjarパッケージのバージョンの問題だと言って、jfreechart 1.0.10以降は文字化けしの問題があるので、1.0を使用することをお勧めします.10バージョンですが、新しいバージョンがある以上、なぜ使わないのかと思いますが、解決策が見つかりませんでした.以下の方法で解決できるし、フォントを柔軟に変えることもできるので、いいのではないでしょうか.
JFreeChartを使ってグラフを生成する時、グラフの中の漢字は1つ1つの“口”で、正常に表示していないで、とても憂鬱で、インターネットで方案を探して、あるのはjarパッケージのバージョンの問題だと言って、jfreechart 1.0.10以降は文字化けしの問題があるので、1.0を使用することをお勧めします.10バージョンですが、新しいバージョンがある以上、なぜ使わないのかと思いますが、解決策が見つかりませんでした.以下の方法で解決できるし、フォントを柔軟に変えることもできるので、いいのではないでしょうか.
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/*
*
*/
public class Zhu {
public static void main(String[] args) {
try {
// ,
StandardChartTheme sct = new StandardChartTheme("CN");
sct.setExtraLargeFont(new Font(" ", Font.LAYOUT_LEFT_TO_RIGHT, 15));
sct.setRegularFont(new Font(" ", Font.LAYOUT_LEFT_TO_RIGHT, 15));
sct.setLargeFont(new Font(" ", Font.LAYOUT_LEFT_TO_RIGHT, 15));
ChartFactory.setChartTheme(sct);
//
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, " ", " ");
dataset.addValue(200, " ", " ");
dataset.addValue(200, " ", " ");
dataset.addValue(300, " ", " ");
dataset.addValue(400, " ", " ");
dataset.addValue(400, " ", " ");
/*
* public static JFreeChart createBarChart3D( java.lang.String
* title, java.lang.String categoryAxisLabel,
* java.lang.String valueAxisLabel, CategoryDataset dataset,
* PlotOrientation orientation, boolean legend,
* boolean tooltips, boolean urls) url
*/
JFreeChart chart = ChartFactory.createBarChart3D(" ", " ",
" ", dataset, PlotOrientation.VERTICAL, true, false,
false);
//
ChartUtilities.saveChartAsPNG(new File("E:/BarChart3D.png"),chart, 800, 500);
System.out.println(" ");
} catch (IOException e) {
e.printStackTrace();
}
}
}