论坛首页 Java企业应用论坛

JFreeChart中文乱码问题。

浏览 1893 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-10   最后修改:2012-07-10
方法1
//创建主题样式     StandardChartTheme standardChartTheme=new StandardChartTheme("CN");     //设置标题字体     standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));     //设置图例的字体     standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));     //设置轴向的字体     standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));     //应用主题样式     ChartFactory.setChartTheme(standardChartTheme);

经测试还是乱码


方法2
1.StandardChartTheme theme = new StandardChartTheme("unicode") {  
2.    public void apply(JFreeChart chart) {  
3.        chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,  
4.                RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);  
5.        super.apply(chart);  
6.    }  
7.};  
8.theme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 20));  
9.theme.setLargeFont(new Font("宋体", Font.PLAIN, 14));  
10.theme.setRegularFont(new Font("宋体", Font.PLAIN, 12));  
11.theme.setSmallFont(new Font("宋体", Font.PLAIN, 10));  
12.ChartFactory.setChartTheme(theme);

还是乱码

方法3
1.Font font = new Font("宋体", Font.BOLD, 22);  
2.jfreechart.getTitle().setFont(font); // 标题  
3. 
4.font = new Font("宋体", Font.PLAIN, 14);  
5.jfreechart.getLegend().setItemFont(font); // 列类型的文字字体  
6.          
7.font = new Font("宋体", Font.PLAIN, 16);  
8.categoryaxis.setLabelFont(font); // x轴名称的字体  
9.categoryplot.getRangeAxis().setLabelFont(font); // y轴名称的字体  
10. 
11.CategoryPlot categoryplot = jfreechart.getCategoryPlot();  
12.CategoryAxis categoryaxis = categoryplot.getDomainAxis();  
13. 
14.font = new Font("宋体", Font.PLAIN, 12);  
15.categoryaxis.setTickLabelFont(font); // x轴上的刻度名称字体  
16.categoryplot.getRangeAxis().setTickLabelFont(font); // y轴上的刻度名称字体  
17.          
18.font = new Font("宋体", Font.PLAIN, 18);  
19.categoryplot.setNoDataMessage(emptyMsg);  
20.categoryplot.setNoDataMessageFont(font); // 没有数据时的提示

依旧是乱码


[size=medium]求解决 Jfreechart在linux下乱码问题。 (上传字体文件除外)[/size]

code:

//创建主题样式
StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  
//设置标题字体    
standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));    
//设置图例的字体    
standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,12));    
//设置轴向的字体    
standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));  

//应用主题样式    
ChartFactory.setChartTheme(standardChartTheme);

JFreeChart chart = ChartFactory.createLineChart(chartTitle, x, y,
        xyDataset, PlotOrientation.VERTICAL, true, true, false);

chart.setTextAntiAlias(false);
chart.setBackgroundPaint(Color.WHITE);
// 设置图标题的字体重新设置title
// Font font = new Font("隶书", Font.BOLD, 20);
TextTitle title = new TextTitle(chartTitle);
chart.setTitle(title);
// 设置面板字体
//Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);

chart.setBackgroundPaint(Color.WHITE);

CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
// x轴 // 分类轴网格是否可见
categoryplot.setDomainGridlinesVisible(true);
// y轴 //数据轴网格是否可见
categoryplot.setRangeGridlinesVisible(true);

categoryplot.setRangeGridlinePaint(Color.WHITE);// 虚线色彩

categoryplot.setDomainGridlinePaint(Color.WHITE);// 虚线色彩

categoryplot.setBackgroundPaint(Color.lightGray);

categoryplot.setNoDataMessage("No Data");//设置提示信息内容。

categoryplot.setNoDataMessagePaint(Color.red);//设置提示信息字体的颜色。

// 设置轴和面板之间的距离
// categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));

CategoryAxis domainAxis = categoryplot.getDomainAxis();

//domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  // 轴标题
//domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));// 轴数值

domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 横轴上的
// Lable
// 45度倾斜
// 设置距离图片左端距离
domainAxis.setLowerMargin(0.0);
// 设置距离图片右端距离
domainAxis.setUpperMargin(0.0);

NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
numberaxis.setAutoRangeIncludesZero(true);

// 获得renderer 注意这里是下嗍造型到lineandshaperenderer!!
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot
        .getRenderer();

lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见
lineandshaperenderer.setBaseLinesVisible(true); // series 点(即数据点)间有连线可见

// 显示折点数据
lineandshaperenderer.setBaseItemLabelGenerator(new
StandardCategoryItemLabelGenerator());
lineandshaperenderer.setBaseItemLabelsVisible(true);

         ChartUtilities.writeChartAsPNG(output, chart, 1030, 245);
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics