|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?js|静态|网页|柱状图我们常常要在网页看到一些静态更新的图片,最多见的莫过于股票的K线图,本文试图经由过程一个复杂的实例,向人人展现怎样经由过程JSP挪用JavaBean在网页上静态天生柱状图.
背景:自己比来在为某统计局开辟项目时,触及到在网页上静态天生图片的成绩,费了一天的工夫,终究弄定,为匡助人人在今后碰到一样的成绩时不走弯路,现将计划头脑及源代码发布出来,与人人共勉.以下代码在Windows2000乐成测试经由过程,Web使用服务器接纳Allaire公司的Jrun3.0,若有疑问,敬请接洽作者:cuigy2000@263.net
第一步:创立一个JavaBean用来天生jpg文件
源程序以下:
//天生图片的JavaBean
//作者:崔冠宇
//日期:2001-08-24
importjava.io.*;
importjava.util.*;
importcom.sun.image.codec.jpeg.*;
importjava.awt.image.*;
importjava.awt.*;
publicclassChartGraphics{
BufferedImageimage;
publicvoidcreateImage(StringfileLocation){
try{
FileOutputStreamfos=newFileOutputStream(fileLocation);
BufferedOutputStreambos=newBufferedOutputStream(fos);
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(bos);
encoder.encode(image);
bos.close();
}catch(Exceptione){
System.out.println(e);
}
}
publicvoidgraphicsGeneration(inth1,inth2,inth3,inth4,inth5){
finalintX=10;
intimageWidth=300;//图片的宽度
intimageHeight=300;//图片的高度
intcolumnWidth=30;//柱的宽度
intcolumnHeight=200;//柱的最年夜高度
ChartGraphicschartGraphics=newChartGraphics();
chartGraphics.image=newBufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_INT_RGB);
Graphicsgraphics=chartGraphics.image.getGraphics();
graphics.setColor(Color.white);
graphics.fillRect(0,0,imageWidth,imageHeight);
graphics.setColor(Color.red);
graphics.drawRect(X+1*columnWidth,columnHeight-h1,columnWidth,h1);
graphics.drawRect(X+2*columnWidth,columnHeight-h2,columnWidth,h2);
graphics.drawRect(X+3*columnWidth,columnHeight-h3,columnWidth,h3);
graphics.drawRect(X+4*columnWidth,columnHeight-h4,columnWidth,h4);
graphics.drawRect(X+5*columnWidth,columnHeight-h5,columnWidth,h5);
chartGraphics.createImage("D: empchart.jpg");
}
}
注释:createImage(StringfileLocation)办法用于创立JPG图片,参数fileLocation为文件路径
graphicsGeneration(inth1,inth2,inth3,inth4,inth5)办法用于绘出图片的内容,参数h1……h5为每个长方形的高度
第二步:创立另外一个JavaBean从文本文件中读取数据(每个长方形的高度),在实践使用中数据存储在Oracle数据库中
源程序以下:
//读取Text文件中数据的JavaBean
//作者:崔冠宇
//日期:2001-08-24
importjava.io.*;
publicclassGetData{
intheightArray[]=newint[5];
publicint[]getHightArray(){
try{
RandomAccessFilerandomAccessFile=newRandomAccessFile("d: empColumnHeightArray.txt","r");
for(inti=0;i<5;i++)
{
heightArray[i]=Integer.parseInt(randomAccessFile.readLine());
}
}
catch(Exceptione){
System.out.println(e);
}
returnheightArray;
}
}
注释:getHightArray()用于从文本中读取数据,将文本中的String范例转换为int范例,并以数组范例前往.
第三步:创立JSP文件
源程序以下:
<%@pageimport="ChartGraphics"%>
<%@pageimport="GetData"%>
<jsp:useBeanid="cg"class="ChartGraphics"/>
<jsp:useBeanid="gd"class="GetData"/>
<%!
intheight[]=newint[5];
%>
<%
height=gd.getHightArray();
cg.graphicsGeneration(height[0],height[1],height[2],height[3],height[4]);
%>
<html>
<body>
<imgsrc=http://www.163design.net/j/f/"d:/temp/chart.jpg"></img>
</body>
</html>
注释:JSP起首挪用Bean(GetData..class)读取文件中的数据,再挪用Bean(ChartGraphics.class)天生图片,最初显现图片
停止语:因为文本(ColumnHeightArray.txt)中的数据能够随时变更,因而天生的图片中的5个长方形的高度是随之变更的,从而完成了图片的静态天生.该计划头脑还能够用于制造网站的投票体系.
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 |
|