使用Jfreechart实现带热点的饼状图

2023-11-12

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图 (Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式 的输出,还可以与PDF和EXCEL关联。

  JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。

今天给大家介绍一下如何在一个頁面中嵌入一个带热点的饼状图.如下图所示:

 

完整范例如下:

 

1. 在SSH框架中添加Jfreechart 所依賴的Jar包:jfreechart-1.0.9.jar和 jcommon-1.0.12.jar

 

2. 在Action 創建一個餅狀圖的DataSet對象,用來保存從數據庫讀取的數據.

 

package com.crms.web.dwr;

import java.util.List;

import org.jfree.data.general.DefaultPieDataset;
import com.crms.biz.StatisticsBiz;
import com.crms.pojo.Customerinfo;
import com.crms.pojo.msms.Orderdetail;
import com.crms.pojo.msms.Orders;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 统计报表模块
 * 
 * @author Liyongbin
 * @date 2010-01-15
 * 
 */

public class StatisticsAction extends ActionSupport {

	private static final long serialVersionUID = -9195275764281964720L;
	private StatisticsBiz statisticsBiz;
	private List<Orderdetail> orderdetailList;
	private Customerinfo customerinfo;
	// 饼状图数据对象
	private DefaultPieDataset pieDataSet = new DefaultPieDataset();



	public StatisticsBiz getStatisticsBiz() {
		return statisticsBiz;
	}

	public void setStatisticsBiz(StatisticsBiz statisticsBiz) {
		this.statisticsBiz = statisticsBiz;
	}

	public List<Orderdetail> getOrderdetailList() {
		return orderdetailList;
	}

	public void setOrderdetailList(List<Orderdetail> orderdetailList) {
		this.orderdetailList = orderdetailList;
	}

	public Customerinfo getCustomerinfo() {
		return customerinfo;
	}

	public void setCustomerinfo(Customerinfo customerinfo) {
		this.customerinfo = customerinfo;
	}

	public DefaultPieDataset getPieDataSet() {
		return pieDataSet;
	}

	public void setPieDataSet(DefaultPieDataset pieDataSet) {
		this.pieDataSet = pieDataSet;
	}

	/**
	 * 贡献分析--查询所有记录
	 */
	public String queryOfferUp() {
		/**
		 * 1.由从msms数据中查询到的用户ID, 2.再由用户ID从crms数据库获取用户的名称 3.将用户称显示在JSP中
		 */
		String customerId = null;
		try {
			// 1.由从msms数据中查询到的用户ID
			orderdetailList = statisticsBiz.getOrderdetailService().queryAll();
			// 设置迭代因子
			Integer i = 0;
			// 将所有的用户ID(String),迭代替换成用户名称(String)
			for (Orderdetail orderdetail_2 : orderdetailList) {
				customerId = ((Orders) (orderdetail_2.getOrders()))
						.getCustomer_id();
				// 得到用户的名称
				customerinfo = statisticsBiz.getCustomerinfoService()
						.queryById(customerId);
				// 迭代替换
				((Orders) (orderdetailList.get(i).getOrders()))
						.setCustomer_id(customerinfo.getCustomerName());
				// 给JFreeChart传数据
				pieDataSet.setValue(customerinfo.getCustomerName(), orderdetail_2
						.getSub_price());
				i++;
			}
			// 传给JSP页面
			//request_1.put("dataSet", dataSet);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "success";
	}

	@Override
	public String execute() throws Exception {
		return super.execute();
	}

	/**
	 * 用于超链接
	 * 
	 * @return
	 */
	public String success() {
		return "success";
	}

}

 

3. 配置struts.xml文件

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
	"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<!-- 拦截struts的扩展名  -->
	<constant name="struts.action.extension" value="action,"/>
	<!-- 开发模式  -->
	<constant name="struts.devModel" value="true"/>
value="crms"/>
	<package name="statistics" namespace="/statistics" extends="jfreechart-default">
		<action name="userinfo" class="userinfoAction">

			<result name="success">
				/WEB-INF/jsp/index.jsp
			</result>
			<result name="error">
				/login.jsp
			</result>
		</action>

		<action name="link_*" class="statisticsAction">
			<result name="success">
				/WEB-INF/jsp/statisticsReport/{1}.jsp
			</result>
		</action>

	</package>
</struts>

 

4. 寫JSP頁面offerUp.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<%@page import="org.jfree.data.general.DefaultPieDataset"%>
<%@page import="org.jfree.chart.plot.PiePlot3D"%>
<%@page import="java.awt.Font"%>
<%@page import="org.jfree.chart.title.LegendTitle"%>
<%@page import="org.jfree.chart.title.TextTitle"%>
<%@page import="org.jfree.chart.JFreeChart"%>
<%@page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%>
<%@page import="org.jfree.chart.imagemap.StandardURLTagFragmentGenerator"%>
<%@page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%@page import="org.jfree.chart.ChartRenderingInfo"%>
<%@page import="java.io.PrintWriter"%>
<%@page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@page import="org.jfree.chart.ChartUtilities"%>

<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%--分析贡献 --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>createDictionary</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<link href="jsp/../css/style.css" type="text/css" rel="stylesheet">
		<style type="text/css">
.btnStyle {
	border: #2C59AA 1px solid;
	padding: 3px 2px 0px 5px;
	margin-left: 2px;
	width: 40px;
	height: 20px;
	FILTER: progid :         DXImageTransform.Microsoft.Gradient (    
		  GradientType =   
				     0, StartColorStr =         #ffffff, EndColorStr =        
		#C3DAF5 );
	cursor: hand;
}

#btnSave,#btnReturn,#btnHelp {
	float: left;
}

#button {
	float: right;
}

#operate div,th,tr td {
	font-size: 13px;
}

#condition {
	clear: both;
}

.statisticsIcon {
	background: url(images/statistics_report.png) no-repeat;
	margin-left: 10px;
	width: 43px;
	height: 40px;
}
 /*饼状图*/
.caky {
	background-position: -88px -2px;
} 
.caky_over {
	background-position: -88px -105px;
} 

#showJfreechart,jfreechart{
	float:left;
}
#statisticsReport{
	height:10px;
}
/*导出office*/
.exportIcon{
	background: url(images/office.gif) no-repeat;
	margin-left: 5px;
	width: 43px;
	height: 40px;
}
.export2Excel{
	background-position: -2px -2px;
}
.export2Excel_over{
	background-position: -2px -78px;
}
#exportSheet,#showJfreechart{
	float:left;
	cursor:hand;
}
</style>
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
	<script type="text/javascript">
		  $(document).ready(function(){
			 //统计图图标的响应事件
			 $("#showJfreechart").bind("click",function(){
			 var $content = $('#jfreechart');
				 if($content.is(":visible")){
					$content.hide(1000);
				 }else{
					$content.show(1000);
				 }
			 })
			 //鼠标经过统计图标按钮 //鼠标离开按钮
		    $("#showJfreechart").hover(function(){
		    	$(this).addClass("caky_over");
			},function(){
				$(this).removeClass("caky_over");
			})
			 //导出Excel图标的响应事件
			  $("#exportSheet").bind("click",function(){
				  window.location.href="excel_offerUp";
			 })
			 //鼠标经过导出Excel图标按钮 //鼠标离开按钮
		    $("#exportSheet").hover(function(){
		    	 $(this).addClass("export2Excel_over");
			},function(){
				$(this).removeClass("export2Excel_over");
			})
		  });
  </script>
	</head>

	<body>
	<div id="page">
		<div id="operate">
				<div id="position">
				数据统计 &gt;&gt;
					<strong>分析客户贡献</strong>
				</div>
				<div id="button">
					<div id="btnSave" class="btnStyle">
						保存
					</div>
					<div id="btnReturn" class="btnStyle">
						返回
					</div>
					<div id="btnHelp" class="btnStyle">
						帮助
					</div>
				</div>
			</div>

<div id="form">
<table class="query_form_table">
	<tr>
		<th>客户名称</th>
		<td><input /></td>
		<th>年份</th>
		<td>
			<select>
				<option>全部</option>
				<option>2005</option>
				<option>2006</option>
				<option>2007</option>
				<option>2008</option>
				<option>2009</option>
				<option>2010</option>
			</select>
		</td>
		<td>
			<div class="statisticsIcon caky" id="showJfreechart">
				&nbsp;
			</div>
			<div class="exportIcon export2Excel" id="exportSheet">
				&nbsp;
			</div>
		</td>
	</tr>
	</table>

	<div id="statisticsReport">
		<div id="jfreechart" style="display: none;">
		<br/>
			<%
			//创建所需的数据
			DefaultPieDataset data = new DefaultPieDataset();
			data=(DefaultPieDataset)request.getAttribute("pieDataSet");
			//创建3D饼状图的Plot对象
			PiePlot3D plot = new PiePlot3D(data);
			plot.setLabelFont(new Font("隶书", Font.BOLD, 16));
			//生成图表
			JFreeChart chart = new JFreeChart("",
					JFreeChart.DEFAULT_TITLE_FONT, plot, true);
			//标题
			chart.setTitle(new TextTitle("客户贡献统计图", new Font("黑体", Font.BOLD,
					22)));
			//图例
			LegendTitle legend = chart.getLegend(0);
			legend.setItemFont(new Font("宋体", Font.BOLD, 14));
			//生成提示
			plot.setToolTipGenerator(new StandardPieToolTipGenerator());
			//设置热点链接
			plot.setURLGenerator(new StandardPieURLGenerator("statistics/link_offerUpDetail!success"));
			//
			StandardEntityCollection entityCollection = new StandardEntityCollection();
			//将图片放在临时目录下
			ChartRenderingInfo info = new ChartRenderingInfo(entityCollection);
			PrintWriter pw = new PrintWriter(out);
			//720是图片长度,450是图片高度
			String filename = ServletUtilities.saveChartAsPNG(chart,720,450,info,session);
			ChartUtilities.writeImageMap(pw, "map0", info, false);
			//
			String url = basePath+ "/servlet/DisplayChart?filename=" + filename;//request.getContextPath()
			pw.flush();
		%>
		<img src="<%=url%>" alt="<%=url%>" width="750" height="450"	usemap="#map0" border="1" />
		</div>	
	</div>
</div>
	<div id="list">
		<br />
			<table class="data_list_table">
				<tr>
					<th>编号</th>
					<th>客户名称</th>
					<th>订单金额(元)</th>
				</tr>
				<!-- 读取数据库开始 -->
				<s:iterator value="#request.orderdetailList" id="orderdetail" status="i">
				<tr>
					<td class="list_data_text"><s:property value="#i.index+1"/></td>
					<td class="list_data_text"><s:property value="#orderdetail.orders.customer_id"/></td>
					<td class="list_data_text"><s:property value="#orderdetail.sub_price"/></td>
				</tr>
				</s:iterator>
				<!-- 读取数据库结束 -->
			</table>
		</div>
	</div>
	</body>
</html>

 

5. 配置web.xml文件

 

	
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- 显示JFreeChart-->
	<servlet>
		<servlet-name>DisplayChart</servlet-name>
		<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DisplayChart</servlet-name>
		<url-pattern>/servlet/DisplayChart</url-pattern>
	</servlet-mapping>

        <filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
                </filter-class>
	</filter>
	<!-- Struts2框架所拦截的文件后缀配置begin-->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/statistics/*</url-pattern>
	</filter-mapping>

</web-app>	

 

6. 最后運行的結果如下圖所示:

  

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Jfreechart实现带热点的饼状图 的相关文章

  • 按字母顺序对组合框值进行排序

    我的 Excel 用户表单中有一个组合框 按字母顺序排序的最简单方法是什么 它的值是在 vba 中硬编码的 新的值只是添加到底部 因此它们不按任何顺序排列 当前正在使用用户表单 以便我们的用户可以将数据从我们的数据库导入到 Excel 中
  • 从 Excel VBA 调用 Bloomberg BQL 查询

    出于复杂的原因 我想在 VBA 中自动调用 Bloomi BQL 查询 我正在从 VBA 脚本更改 Excel 工作表中 BQL Query 公式的输入 并调用 Application Calculate 来运行查询 显示更改为 N A 请
  • 绘制持续时间图表

    从我在写这篇文章之前所做的阅读中 我相当确定我需要创建甘特图 但我不知道这是否是正确的路线 需要将开始时间和结束时间的数据作为一个单位绘制在 Excel 图表上 Y 轴为日期 X 轴为一天中的小时 开始时间和结束时间的格式是 Excel 数
  • 根据单元格值返回图像(100 张图像和可变单元格)

    我正在尝试为我制作一个 TFT 云顶之弈 表 并想让它看起来更好 为此 我想添加游戏中冠军的图像 当我输入名称时 图像应该出现在下面 我找到了一种将所有图像插入 Excel 工作表 100 的方法 并且还成功制作了一个动态图像 插入 IND
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级
  • 从原始数据创建 n 个新行,例如 (1000....1000+n)

    我需要从 Excel 工作簿中读取数据 其中数据以这种方式存储 Company Accounts Company1 3000 3999 Company2 4000 4019 4021 4024 在 SSIS 中使用 OLE DB 目标的预期
  • 从 excel/vba 生成电子邮件到 Outlook 时,我的电子邮件签名不会出现?

    您好 我使用 Ron De Bruin 的精彩网站创建了 VBA 代码 该代码可以从 Excel 文件生成向特定用户发送的电子邮件 唯一的问题是我的签名没有出现在每封电子邮件上 而且我似乎找不到如何在代码中添加它 有人可以建议吗 正如你所知
  • 合并数据框中的值以写入 Excel

    我有一个看起来像的数据框 column1 column2 column3 colum4 column5 1 r n 1 r s 1 r n 2 r s 3 r n 3 2 r n 1 r s 1 r n 4 r s 4 r n 5 3 r
  • 从 Excel 将参数传递到 SQL Server 上的 MS Query 中的临时变量

    我已经使用 Microsoft 查询创建了参数查询 如上所述here https superuser com questions 197453 run an sql query with a parameter from excel 200
  • vba Excel 中的多个查找请求(在查找中查找)

    我正在尝试执行一种嵌套查找请求 用例是我需要在一个工作表上查找组 如果找到 则从找到的行中的单独列中获取用户 ID 值 然后在另一张纸 然后它应该执行一系列操作 然后在第一张表中找到下一个出现的组 我的代码是 LookupGroup Spl
  • 随着数据的增加自动填充公式并动态排序[重复]

    这个问题在这里已经有答案了 我想对工作表中的数据进行排序 该工作表每天都会在第二个工作表中获取新行 问题是 如果我使用 SMALL 函数并自动填充单元格直到最后一行 A102482 或类似的内容 我的文件会变得非常巨大且滞后 gt 20mb
  • Excel 公式或 VBA:在具有 2 列条件的单独表中查找匹配的地址 - 无辅助列

    我需要公式结构方面的帮助 我有2张桌子 我想找到 a 列和 b 列相等的匹配项并获取表 2 中的地址 它们将是唯一的条目 例如 项目信息表 A B C 1 Name Company Project 2 Chris Evans Apple I
  • Excel宏-将逗号分隔的条目拆分为新行[重复]

    这个问题在这里已经有答案了 我目前在一张纸上有这些数据 Col A Col B Col C 1 A angry birds gaming 2 B nirvana rock band 我想要做的是将第三列中的逗号分隔条目拆分并插入新行 如下所
  • 在 Android 上使用 Excel 文件

    我正在开发一个应该能够创建 读取和写入 Excel 文件的模块 是否有 推荐 轻量级 Java 库用于处理可以在 Android 上运行的 Excel 文件 欢迎提出建议 Thanks 找到一个
  • 使用 UiPath 循环 Excel 文件中的 URL

    我尝试了几种方法 但不知怎的 它们看起来不干净 我有一个 Excel 格式的 URL 文件 一列中有 400 多个 URL 我希望 UiPath 从该文件中读取并一一浏览这些 URL 我尝试让 导航到 从从 Excel 读取的变量中读取 但
  • 如何保留每个单元格中合并单元格的值?

    我创建了一个包含合并单元格的工作表 但合并单元格的值仅存储在第一个单元格中 无论如何 为了在每个单元格中保持相同的值 我使用的公式需要它 谢谢 在 Excel 2003 中 此宏执行以下任务 Public Sub UnmergeAndFil
  • 在 Excel 中的文件夹内的所有文件上添加一列

    我在一个文件夹内有 250 个不同的 excel 文件 具有相同的布局 其中包含列A to F 我需要在列上添加新列G 传统的方法是打开每个文件并在以下位置添加新列G 有没有使用 Excel 宏或任何其他工具的简单过程来完成此任务 这个链接
  • 求除某些列之外的 SUM

    以下是我所拥有的 A B C D E F G H I J K 1 2 3 4 5 6 7 8 9 10 50 为了找到SUM
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • alasql 需要已包含的 xlsx

    我正在尝试使用将数据导出到 Excel 工作表alasql and xlsx 我已遵循此处的所有准则 https github com agershun alasql wiki Xlsx https github com agershun

随机推荐

  • Android 兼容8.0 App全局字体调节、禁止App字体随系统字体大小而更改

    在APP中 字体的大小单位一般会用sp 然而在改变系统字体大小时 App字体就会随着系统字体大小改变而改变 这就可能造成APP布局的错位 造成这种情况的原因是 sp单位除了受屏幕密度影响外 还受到用户的字体大小影响 通常情况下 建议使用sp
  • 【周末闲谈】什么是云计算?

    个人主页 个人主页 系列专栏 周末闲谈 第一周 二进制VS三进制 第二周 文心一言 模仿还是超越 第二周 畅想AR 文章目录 前言 什么是云计算 大数据 云计算是分布式计算的一种 云计算为我们提供的三种服务 基础设置即服务 laaS 软件运
  • Unicode汉字编码表

    1 Unicode编码表 Unicode只有一个字符集 中 日 韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS 2 它用两个字节来编码一个字符 比如汉字 经 的编码是0x7ECF 注
  • 几种任务调度的 Java 实现方法与比较

    I 几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用 多数应用都具备任务调度的功能 本文由浅入深介绍了几种任务调度的 Java 实现方法 包括 Timer Scheduler Quartz 以及 JCron Tab 并对其
  • project facets java转成web项目

    前言 用Eclipse开发项目的时候 把一个Web项目导入到Eclipse里会变成了一个Java工程 将无法在Tomcat中进行部署运行 方法 1 找到 project文件 找到里面的
  • [GUI]stm32搭载3.5寸SPI-TFT屏移植LittleVGL

    唠几句 记录下移植笔记 新项目用到LVGL 也是首次接触GUI库 所以Emmmm 学呗 之前都是直接在LCD屏上画点 画线 画圆 画个矩形 画个多边形 显示个字符串 显示张图片而已 没有用过GUI库 在网上找了点学习资料 然后把LVGL库的
  • Springboot企业级部署解决方案

    使用springboot的童鞋们 有没曾经想把项目打包成 bin conf libs logs 等这样的结构然后直接运行的 但是找了很多办法都不够完美 因为G是个完美主义 好了直接来看解决方案 1 修改执行打包的子工程的pom xml文件
  • Emojify - v2参考答案

    Emojify Welcome to the second assignment of Week 2 You are going to use word vector representations to build an Emojifie
  • Android允许EditText获取焦点,但是不弹出系统键盘的方法

    1 以下方法可以避免弹出系统软键盘 但是scanPayDialog里面的editText也失去了焦点 scanPayDialog getWindow setSoftInputMode WindowManager LayoutParams S
  • RK3568 Debian10 固态硬盘自动挂载

    目录 需求 实现 步骤 附录 Example Field definitions 参考资料 Platform RK3568 OS Debian10 Kernel v4 19 219 Module Wdxsky SSD NVME 950 12
  • 基于js+echarts实现数据可视化大屏展示

    vue echarts大屏数据可视化展示点击进入 写在前面 本项目中使用的是echarts图表库 ECharts 提供了常规的折线图 柱状图 散点图 饼图 K线图 用于统计的盒形图 用于地理数据可视化的地图 热力图 线图 用于关系数据可视化
  • 收藏: 浅析SPDK技术和知识点

    固态存储设备正在取代数据中心 如今新一代的闪存存储 比起传统的磁盘设备 在性能 功耗和机架密度上具有显著的优势 这些现有的优势将会继续增大 使闪存作为下一代存储设备进入市场 用户使用现在的固态设备 比如 Intel SSD DC P4600
  • React组件生命周期

    原文地址 每个组件都包含 生命周期方法 我们可以重写这些方法 以便于在运行过程中特定的阶段执行这些方法 生命周期图谱 React官方提出了三个特定阶段 挂载阶段 更新阶段 卸载阶段 挂载阶段 constructor static getDe
  • Create Ms Word doc using Javascript And vbscript .

  • unity 物体跟随鼠标指针 移动

    Cusor lockState CusorLockMode Locked 锁定光标不能动 注 可按Esc解锁光标 Cusor visible false 隐藏光标 private Vector3 screenPosition private
  • Kettle 文本文件输入 中文汉字乱码

    问题 今天 使用Kettle 的文本文件输入组件转换为Excel 输出组件时 由于转换文本中包含中文 执行转换时 查看excel 文件时内容出现了汉字乱码 实战 1 创建one txt 文本文件 我在电脑桌面上 创建一个txt文件 命名为o
  • Haxe: class, object, new and constructor

    haxe 类 对象 new 和 构造函数 package if neko import neko Lib import neko io File end class Thing public function new trace new f
  • Mysql 解析

    目录 1 索引 为什么需要索引 索引的类型有哪些 mysql使用的是哪种索引数据结构
  • 自定义flume拦截器-实现了多种功能

    1 自定义拦截器实现说明 1 实现interceptor接口 并实现其方法 接口完全限定名为 org apache flume interceptor Interceptor 2 自定义拦截器内部添加静态内部类 实现Builder接口 并实
  • 使用Jfreechart实现带热点的饼状图

    JFreeChart是JAVA平台上的一个开放的图表绘制类库 它完全使用JAVA语言编写 是为applications applets servlets 以及JSP等使用所设计 JFreeChart可生成饼图 pie charts 柱状图