`
lshh83
  • 浏览: 161497 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jrobin图表字体问题

JDK 
阅读更多
Jrobin图表显示存在的中文乱码问题可通过手动设置字体来解决。
   下面是我写的生成和读取jrobin图表的简单例子:
import java.awt.Color;
import java.awt.Font;
import java.io.IOException;

import org.jrobin.core.RrdDb;
import org.jrobin.core.RrdDef;
import org.jrobin.core.RrdException;
import org.jrobin.core.Sample;
import org.jrobin.core.Util;
import org.jrobin.graph.RrdGraph;
import org.jrobin.graph.RrdGraphDef;

public class create {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		long end = Util.getTime(), start = end - 7 * 86400; // 截至时间为当前时间,起始时间为一周前
		String rrdFile = "demo.rrd";

		// 创建数据文件定义,保存日数据与周数据
		try {
			RrdDef rrdDef = new RrdDef(rrdFile, start - 1, 300); // 数据间隔为300秒
			rrdDef
					.addDatasource("value1", "GAUGE", 600, Double.NaN,
							Double.NaN); // 定义数据源,可以定义多个
			rrdDef
					.addDatasource("value2", "GAUGE", 800, Double.NaN,
							Double.NaN);

			// 以下定义归档数据,即如何保存数据
			rrdDef.addArchive("AVERAGE", 0.5, 1, 288); // 输入给数据源的数据每一个都保存下来,保存288笔数据,即保存最近一天的数据
			rrdDef.addArchive("AVERAGE", 0.5, 7, 288); // 每7笔数据,取平均值,然后保存,保存288笔数据,即保存最近一周的数据
			RrdDb rrdDb = new RrdDb(rrdDef);

			// 采用三角函数生成数据
			for (long t = start; t < end; t += 300) {
				Sample sample = rrdDb.createSample(t);
				sample.setValue("value1",
						Math.sin(2 * Math.PI * (t / 86400.0)) * 50 + 50);
				sample.setValue("value2", 60);
				sample.update();
			}
			String pngFile = "";
			RrdGraphDef gDef = null;
			// 生成最近一天的图形
			pngFile = "demoday.png";
			gDef = new RrdGraphDef();
			gDef.setFilename(pngFile);
			gDef.setWidth(450);
			gDef.setHeight(250);
			gDef.setImageFormat("png");
			gDef.setTimeSpan(end - 86400, end);
			gDef.setTitle("JRobin Demo 每天");

			gDef.datasource("demo1", rrdFile, "value2", "AVERAGE");
			gDef.line("demo1", Color.blue, "阀值");

			gDef.datasource("demo", rrdFile, "value1", "AVERAGE");
			gDef.line("demo", Color.GREEN, "real");
			gDef.gprint("demo", "MIN", "%5.1lf Min");
			gDef.gprint("demo", "AVERAGE", "%5.1lf Avg");
			gDef.gprint("demo", "MAX", "%5.1lf Max");

			gDef.setSmallFont(new Font("Monospaced", Font.PLAIN, 11));
			gDef.setLargeFont(new Font("SansSerif", Font.BOLD, 14));
			new RrdGraph(gDef);

			// 生成最近一周的图形
			pngFile = "demoweek.png";
			gDef = new RrdGraphDef();
			gDef.setFilename(pngFile);
			gDef.setWidth(450);
			gDef.setHeight(250);
			gDef.setImageFormat("png");
			gDef.setTimeSpan(end - 7 * 86400, end);
			gDef.setTitle("JRobin Demo 我的");

			gDef.datasource("demo", rrdFile, "value1", "AVERAGE");
			gDef.line("demo", Color.GREEN, "real");
			gDef.gprint("demo", "MIN", "%5.1lf Min");
			gDef.gprint("demo", "AVERAGE", "%5.1lf Avg");
			gDef.gprint("demo", "MAX", "%5.1lf Max");

			// 如果需要显示中文,以下两条语句比较重要
			gDef.setSmallFont(new Font("Monospaced", Font.PLAIN, 11));
			gDef.setLargeFont(new Font("SansSerif", Font.BOLD, 14));
			new RrdGraph(gDef);
		} catch (RrdException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} // 根据数据定义创建数据文件
	}

}


其中设置字体的代码为:
gDef.setSmallFont(new Font("Monospaced", Font.PLAIN, 11));
			gDef.setLargeFont(new Font("SansSerif", Font.BOLD, 14));

    解释:

monospaced,是一种逻辑字体,它在不同语言的操作系统下会映射为不同的物理字体,一般英文操作系统会把monospaced映射为Courier New,显示代码很好看,然而来到中文的操作系统时就被映射到宋体上了。修改的方法如下: 1。 进入到JDK_HOME/jre/lib目录,备份fontconfig.properties.src文件; 2。 打开fontconfig.properties.src,找到这一行:sequence.monospaced.GBK=chinese-ms936, alphabetic, dingbats, symbol 可在这里重新设置你喜欢的字体。
分享到:
评论

相关推荐

    RRD与JRobin

    在IT监控领域,RRD(Round Robin Database)和JRobin是两种常见的时序数据库,用于存储和...通过学习和掌握这些工具,你可以构建出能够实时反映IT环境健康状况的监控系统,及时发现并解决问题,确保业务的稳定运行。

    JRobin 流量报表

    **JRobin 流量报表详解** ...通过深入了解和应用 JRobin,您可以更好地管理系统的流量数据,及时发现潜在问题,提升系统运行效率和稳定性。无论是在企业级应用还是个人项目中,JRobin 都能成为您强大的流量监控工具。

    jrobin-1.5.9-API文档-中文版.zip

    赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom; 包含翻译后的API文档:jrobin-1.5.9-javadoc-API...

    jrobin-1.5.14.jar和源代码

    《JRobin:深入理解与应用》 在Java世界中,数据持久化是一个不可或缺的部分,而JRobin正是这样一个轻量级的、高效的RPM(Ring-Persistent Metrics)存储库,它被广泛用于记录和分析系统性能指标。JRobin-1.5.14....

    jrobin-1.5.9-API文档-中英对照版.zip

    赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom; 包含翻译后的API文档:jrobin-1.5.9-javadoc-API...

    jrobin学习例子程序

    学习用jrobin绘图的绝佳例子程序 学习用jrobin绘图的绝佳例子程序

    jrobin流量监控代码

    在"jrobin流量监控代码"中,我们可以看到作者实现了一套能够创建RRD文件(Round Robin Database)、更新数据并生成图表的功能。RRD文件是Jrobin用来存储时间序列数据的主要方式,它通过固定大小的数据库结构来优化...

    javaMelody+jrobin jar文件 .rar

    结合JavaMelody和JRobin,开发者可以实现对Java应用的全方位监控,及时发现并解决问题,提升系统的稳定性和效率。在实际应用中,这两个工具可以帮助运维人员更好地管理和维护Java应用程序,确保其健康运行。

    JavaMelody javamelody-core-1.52.0.jar jrobin-1.5.9.jar

    RRD是一种数据结构,适用于存储大量定时数据,比如监控数据,它可以有效地压缩数据,减少存储空间,并能快速生成图表。 在实际使用中,要集成这两个JAR文件到Java应用,通常需要在web.xml中配置JavaMelody的监听器...

    JRobin-开源

    JRobin是RRDTool的100%纯Java替代品,具有几乎完全相同的规格。 如果向RRDTool和JRobin提供相同的数据,则将获得完全相同的结果和图形。 支持所有标准RRDTool操作。

    javamelody.jar和 jrobin.jar

    监控器需要的jar,需在web.xml中配置 &lt;filter-name&gt;monitoring &lt;filter-class&gt;net.bull.javamelody.MonitoringFilter&lt;/filter-class&gt; &lt;filter-name&gt;monitoring &lt;url-pattern&gt;/* ...可以进入到监控页面

    RRD环形数据库操作.rar

    虽然JRobin不直接支持绘图,但你可以通过读取RRD数据并结合其他库(如JFreeChart)来生成图表。 在实际应用中,RRD数据库常用于系统监控工具,如Nagios、Ganglia等,它们利用RRD的特性来存储和展示服务器和网络设备...

    jrobin-1.5.9.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...

    snmp-tutorial:SNMP教程:Jrobin、SNMP4j

    snmp-tutorialSNMP tutorial :Jrobin、SNMP4jsnmp4j-1x-demoSNMP4j实现同步和异步的GET的示例SNMP4j实现同步和异步的Walk的示例SNMP4j实现Trap的示例SNMP4j实现SET的示例SNMP4j实现GETBLUK的示例robin-demoJRobin ...

    javamelody资料包

    2. **jrobin**: JRobin是用于存储性能数据的二进制日志库,它是基于RMON(Remote Monitoring)标准的,能够高效地存储和检索性能历史数据。 3. **msyh.ttc** 和 **msyhbd.ttc**: 这两个文件可能包含的是中文字体,...

    开源 tomcat 性能查看工具

    监控界面会展示多种图表和数据,如: - **Session统计**:显示当前活动的session数量,以及session创建和销毁的频率,帮助理解用户会话的生命周期和负载。 - **错误信息**:记录应用抛出的异常和错误,便于快速定位...

    JavaMelody 监测java或javaEE应用服务器

    4. 在监控界面上,你可以看到各种图表和统计数据,包括HTTP请求、内存使用、线程、SQL查询、缓存等。这些信息可以帮助你诊断问题,优化性能。 关于源码,如果你对JavaMelody的工作原理感兴趣,可以深入研究`java...

    JavaMelody JAVA Web项目服务器性能监控工具

    这个界面提供了丰富的图表和表格,数据可按时间范围筛选,方便进行性能对比和趋势分析。 总的来说,JavaMelody是一款强大的开源工具,它通过提供详尽的性能监控数据,帮助开发者和运维团队提升JAVA Web项目的稳定性...

    JavaMelody应用监控使用指南

    总之,JavaMelody是一款强大的监控工具,它简化了Java应用和服务器的性能监控,通过直观的图表帮助开发者和运维人员快速定位问题,提升系统的稳定性和效率。只需几步简单的配置,您就可以享受到JavaMelody带来的便利...

    监控JAVA应用的好工具javamelody

    这个工具的核心组件包括javamelody.jar和jrobin-1.5.9.1.jar,这两个JAR文件在Java应用的监控中扮演着重要角色。 javamelody.jar是JavaMelody的主要实现库,它提供了全面的监控功能。这个库能够集成到任何基于...

Global site tag (gtag.js) - Google Analytics