仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1064|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网页编程之进修JFreeChart(一)

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:50:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,chart
比来因为项目必要,入手下手进修JFreeChart和iText,在网上找了一下相干的材料不是良多,出格是JFreeChart在官方文档上没有像iText那样细致的申明及例子,并且官方的demo只要一个jar文件,内里也对照乱,不晓得从甚么中央动手,在网上找了几个例子,入手下手循规蹈矩的学吧!

第一个例子是个台湾人写的,良多的名词都是用的台湾说法,读过侯捷师长教师翻译的书的伴侣应当有很深的体味!进修任何一个开源的项目第一个义务就是配情况,

JFreeChart首:http://www.jfree.org/jfreechart/

JFreeChartAPI:http://www.jfree.org/jfreechart/javadoc/

今朝的版本:jfreechart-1.0.0详细的安装和classpath的设置就未几说了



下面就是该例子要天生的柱状图!代码以下:

packageHelloJChart;importjava.awt.Dimension;

importjavax.swing.JFrame;

importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartPanel;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.plot.PlotOrientation;importorg.jfree.data.category.CategoryDataset;importorg.jfree.data.category.DefaultCategoryDataset;

publicclassHelloBarChartextendsJFrame{publicHelloBarChart(){CategoryDatasetdataset=createDataset();JFreeChartchart=createChart(dataset);chart=customizeChart(chart);ChartPanelchartPanel=newChartPanel(chart);chartPanel.setPreferredSize(newDimension(500,270));getContentPane().add(chartPanel);

pack();setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}

publicstaticvoidmain(String[]args){newHelloBarChart();}

privateCategoryDatasetcreateDataset(){//rowkeys...Stringseries1="First";Stringseries2="Second";Stringseries3="Third";

//columnkeys...Stringcategory1="Category1";Stringcategory2="Category2";Stringcategory3="Category3";Stringcategory4="Category4";Stringcategory5="Category5";

//createthedataset...DefaultCategoryDatasetdataset=newDefaultCategoryDataset();

dataset.addValue(1.5,series1,category1);dataset.addValue(4.2,series1,category2);dataset.addValue(3.0,series1,category3);dataset.addValue(5.0,series1,category4);dataset.addValue(5.0,series1,category5);

dataset.addValue(5.5,series2,category1);dataset.addValue(7.8,series2,category2);dataset.addValue(6.0,series2,category3);dataset.addValue(8.0,series2,category4);dataset.addValue(4.0,series2,category5);

dataset.addValue(4.0,series3,category1);dataset.addValue(3.0,series3,category2);dataset.addValue(2.0,series3,category3);dataset.addValue(3.0,series3,category4);dataset.addValue(6.0,series3,category5);

returndataset;}

privateJFreeChartcreateChart(finalCategoryDatasetdataset){JFreeChartchart=ChartFactory.createBarChart("HelloBarChart",//charttitle"Category",//domainaxislabel"Value",//rangeaxislabeldataset,//dataPlotOrientation.VERTICAL,//orientationtrue,//includelegendtrue,//tooltips?false//URLs?);returnchart;}

privateJFreeChartcustomizeChart(finalJFreeChartchart){returnchart;}}

要创建一JFreeChart的D形次要有三步E
创建一碛匈Y料的DataSet用DataSet造JFreeChartJFreeChart作一些自的O@示JFreeChart
第一步:创建DataSet

BarChart利用的DataSet接口org.jfree.data.CategoryDataset的DataSet。有煞N体例斫CategoryDataSet
利用CategoryDataSet的子类org.jfree.data.DefaultCategoryDataset,再用addValue()把Y料到场DataSet中创建包括抵档亩S列,再利用org.jfree.data.DatasetUtilities的createCategoryDataset()
利用DefaultCategoryDataSet

DefaultCategoryDataSetclass:

publicvoidaddValue(doublevalue,java.lang.ComparablerowKey,java.lang.ComparablecolumnKey)publicvoidaddValue(java.lang.Numbervalue,java.lang.ComparablerowKey,java.lang.ComparablecolumnKey)

value-thevaluerowKey-therowkeycolumnKey-thecolumnkey

参照后面的createDataset办法!

利用org.jfree.data.DatasetUtilities

org.jfree.data.DatasetUtilitiesclass:

publicstaticCategoryDatasetcreateCategoryDataset(StringrowKeyPrefix,StringcolumnKeyPrefix,java.lang.Number[][]data)publicstaticCategoryDatasetcreateCategoryDataset(String[]rowKeys,String[]columnKeys,double[][]data)publicstaticCategoryDatasetcreateCategoryDataset(StringrowKey,KeyedValuesrowData)

rowKeyPrefix-therowkeyprefix.columnKeyPrefix-thecolumnkeyprefix.rowKeys-therowkeys.columnKeys-thecolumnkeys.data-thedata.



privateCategoryDatasetcreateDataset(){double[][]data=newdouble[][]{{1.0,43.0,35.0,58.0,54.0,77.0,71.0,89.0},{54.0,75.0,63.0,83.0,43.0,46.0,27.0,13.0},{41.0,33.0,22.0,34.0,62.0,32.0,42.0,34.0}};returnDatasetUtilities.createCategoryDataset("Series","Factor",data);}

第二步:造JFreeChart

要用DataSet造出一JFreeCharte,我K不间接w化出一JFreeChartw,而是利用ChartFactoryee面的办法。

ChartFactoryclass:

publicstaticJFreeChartcreateBarChart(java.lang.Stringtitle,java.lang.StringcategoryAxisLabel,java.lang.StringvalueAxisLabel,CategoryDatasetdata,PlotOrientationorientation,booleanlegend,booleantooltips,booleanurls)

title-thecharttitle.categoryAxisLabel-thelabelforthecategoryaxis.valueAxisLabel-thelabelforthevalueaxisdata-thedatasetforthechart.orientation-theplotorientation(PlotOrientation.HORIZONTALorPlotOrientation.VERTICAL).legend-aflagspecifyingwhetherornotalegendisrequired.tooltips-configurecharttogeneratetooltips?urls-configurecharttogenerateURLs?



privateJFreeChartcreateChart(finalCategoryDatasetdataset){JFreeChartchart=ChartFactory.createBarChart("HelloBarChart",//标题

"Category",//行称号

"Value",//列称号

dataset,//数据

PlotOrientation.VERTICAL,//横向,纵向

true,//图例

true,//柱状申明false//URLs?);returnchart;}

第三步:修JFreeChart

@例中K]有JFreeChart作修。

privateJFreeChartcustomizeChart(finalJFreeChartchart){returnchart;}

第四步:@示JFreeChart

ChartPanel是一^承JPanel的e,把JFreeChart在贸淌街酗@示出怼N只需把JFreeChart成鹘oChartPanel的建子。造出ChartPanel的w後,O定巨细,再成一样平常的Panel放进ContentPane中就能够了。

ChartPanelclass:

publicChartPanel(JFreeChartchart)publicChartPanel(JFreeChartchart,booleanuseBuffer)publicChartPanel(JFreeChartchart,booleanproperties,booleansave,booleanprint,booleanzoom,booleantooltips)publicChartPanel(JFreeChartchart,intwidth,intheight,intminimumDrawWidth,intminimumDrawHeight,intmaximumDrawWidth,intmaximumDrawHeight,booleanuseBuffer,booleanproperties,booleansave,booleanprint,booleanzoom,booleantooltips)

chart-thechart.useBuffer-aflagcontrollingwhetherornotanoff-screenbufferisused.properties-aflagindicatingwhetherornotthechartpropertyeditorshouldbeavailableviathepopupmenu.save-aflagindicatingwhetherornotsaveoptionsshouldbeavailableviathepopupmenu.print-aflagindicatingwhetherornottheprintoptionshouldbeavailableviathepopupmenu.zoom-aflagindicatingwhetherornotzoomoptionsshouldbeaddedtothepopupmenu.tooltips-aflagindicatingwhetherornottooltipsshouldbeenabledforthechart.width-thepreferredwidthofthepanel.height-thepreferredheightofthepanel.minimumDrawWidth-theminimumdrawingwidth.minimumDrawHeight-theminimumdrawingheight.maximumDrawWidth-themaximumdrawingwidth.maximumDrawHeight-themaximumdrawingheight.



publicHelloBarChart(){CategoryDatasetdataset=createDataset();JFreeChartchart=createChart(dataset);chart=customizeChart(chart);ChartPanelchartPanel=newChartPanel(chart);chartPanel.setPreferredSize(newDimension(500,270));getContentPane().add(chartPanel);pack();setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
至此第一个例子已进修终了,基础懂得了JFreeChart的一些基础手艺!上面再进修一个柱状图的例子
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-21 16:04:11 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
admin 该用户已被删除
板凳
发表于 2015-1-24 18:09:59 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
柔情似水 该用户已被删除
地板
发表于 2015-2-2 11:38:27 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
莫相离 该用户已被删除
5#
发表于 2015-2-5 15:07:08 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
小女巫 该用户已被删除
6#
发表于 2015-2-5 15:16:56 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
只想知道 该用户已被删除
7#
发表于 2015-2-8 12:26:28 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘灵儿 该用户已被删除
8#
发表于 2015-2-25 12:57:30 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-2-27 12:27:34 | 只看该作者
是一种使用者不需花费很多时间学习的语言
海妖 该用户已被删除
10#
发表于 2015-3-2 08:12:28 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
冷月葬花魂 该用户已被删除
11#
发表于 2015-3-11 00:31:46 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小魔女 该用户已被删除
12#
发表于 2015-3-13 08:09:24 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
变相怪杰 该用户已被删除
13#
发表于 2015-3-19 06:09:35 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
山那边是海 该用户已被删除
14#
发表于 2015-3-27 09:07:30 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
兰色精灵 该用户已被删除
15#
发表于 2015-3-29 11:52:39 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
因胸联盟 该用户已被删除
16#
发表于 2015-4-2 08:47:46 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
17#
发表于 2015-4-2 18:36:22 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
小妖女 该用户已被删除
18#
 楼主| 发表于 2015-4-4 18:27:33 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-4-13 01:30:04 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
透明 该用户已被删除
20#
发表于 2015-4-25 02:01:15 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表