浏览 1893 次
锁定老帖子 主题:JFreeChart中文乱码问题。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-07-10
最后修改:2012-07-10
//创建主题样式 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); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |