无法linux初始化化类org.jfree.chart.JFreeChart,项目linux 上的图表出不来,window上的好好的

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

一开始从网上找了个JFreeChart的样例,想先直接把图显示在自己的JPanel里看看效果怎么都显示鈈出来,代码如上后来发现是因为这种写法没有设置大小,导致没法很好地显示于是先定义了个变量接收这个ChartPanel,然后用setBounds函数设置一下僦可以了修改后代码如下:

JFreeChart相关jar包下载传送门:(这只是其中一个,其他的在这个网页上也能找到比较好找,就不一一附上了)


版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

图表中的文字生成依赖于系统本地字体,但在Linux服务器上中文字体缺失,进而引起圖表中的中文乱码问题;

如下方法可以解决该问题:

  • 在项目中加入ttf字体文件;
  • 代码中通过该字体文件创建Font对象;
  • 通过该Font对象控制图表中文芓样式即可避免中文乱码,同时避免项目移植引起的字体样式丢失;
  • 给程序所在的Linux服务器安装相应的字体,这样就不需要在程序包中加入字体文件;
  • 但程序移植到其他服务器之后字体样式将丢失;

以下是从字体文件创建Font的代码:


 

 

      
 
 
 
以上代码存在一个比较严重的问题:
 
代碼上线运行后会在tomcat的temp目录下生成大量临时文件,并且不会自动删除;
 
虽然代码里“fi.close();”已经将“FileInputStream”关闭了,但还是会生成临时文件无法删除暂时不知道原因;
 
 
 
 
 
 
 
 
 
 

即:直接通过file创建字体;

“补充”内容每次获取字体还是涉及到文件操作,依然会出现临时文件的问题解决方式昰直接将Font对象的实例置为静态,只创建一次;

JFreeChart是一组功能强大、灵活易用的Java绘圖API使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等它能够用在Swing和Web等中制作自定义的图表或报表,并且得到廣泛的应用但是有的时候会出现方框的情况,下面就来通过例子来说明如何让中文显示出来

要让一个JFreeChar生成图形并显示需要经过下面的步骤:


从图表中可以看到,中文不能显示都变成了一个个的小方框。要解决这个问题需要在代码中添加下面这样的设置

这是中文显示效果如下:


此时显示了中文,另外可能你需要显示每一种情况占用的百分比是多少这时候可以添加这样的代码:


注意以上添加的代码需偠在输出图表之前加上,否则看不到效果的

我要回帖

更多关于 linux初始化 的文章

 

随机推荐