在JSP中生成柱形图形的例子:
1。图形生成处理类<ChartGraphics>:
package graphics;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import java.awt.Graphics;
import java.awt.Color;
public class ChartGraphics {
BufferedImage image;
public void createImage(String fileLocation)
{
try {
FileOutputStream fos = new FileOutputStream(fileLocation);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
try {
encoder.encode(image);
bos.close();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void graphicGenernal(int h1,int h2,int h3,int h4,int h5)
{
int x = 10;
int imageHight = 300;
int imageWidth = 300;
int columnHight = 200;
int columnWidth = 30;
ChartGraphics graphics = new ChartGraphics();
graphics.image = new BufferedImage(imageWidth,imageHight,BufferedImage.TYPE_INT_RGB);
Graphics graphic = graphics.image.getGraphics();
graphic.setColor(Color.BLUE);
graphic.fillRect(0, 0, imageWidth, imageHight);
graphic.setColor(Color.RED);
graphic.drawRect(1*x+1*columnWidth, columnHight-h1, columnWidth, h1);
graphic.drawRect(2*x+2*columnWidth, columnHight-h2, columnWidth, h2);
graphic.drawRect(3*x+3*columnWidth columnHight-h3, columnWidth, h3);
graphic.drawRect(4*x+4*columnWidth, columnHight-h4, columnWidth, h4);
graphic.drawRect(5*x+5*columnWidth, columnHight-h5, columnWidth, h5);
graphics.createImage("c://2.jpg");
}
}
2。显示数据获取<GetData.java>:
package graphics;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class GetData {
int hight[] = new int[5];
public int[] getArrayList()
{
try {
RandomAccessFile rf = new RandomAccessFile("c://1.txt","r");
for(int i=0;i<5;i++)
{
try {
hight[i] = Integer.parseInt(rf.readLine());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return hight;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
3。显示图形JSP页面<index.jsp>:
<%@ page language="java" import="java.util.*" pageEncoding="Shift_JIS"%>
<%@ page import="graphics.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<jsp:useBean id="chartGraphics" class="graphics.ChartGraphics"/>
<jsp:useBean id="getData" class="graphics.GetData"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index2.jsp' starting page</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 rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
int d[] = new int[5];
d = getData.getArrayList();
chartGraphics.graphicGenernal(d[0],d[1],d[2],d[3],d[4]);
%>
<img src="c://2.jpg"></img>
</body>
</html>
4。数据文件<c://1.txt>:
12
56
89
23
90
56
78