文件graphBG.jsp--
<%@ page language="java" contentType = "text/html;charset = gb2312" import = "java.awt.*" errorPage = ""%>
<%!
public class graphBG{
Font font = new Font("ARIAL",Font.BOLD,11);
Color headerColor = new Color(20,50,100);
public Graphics2D draw(Graphics2D biContext,int width,int height,String headerText,String averageText){
//阴影颜色
Color dropShadow = new Color(200,200,200);
//标题
Dimension dim = new Dimension(width,height);
Dimension dimGraph = new Dimension(width-21,height-51);
Dimension dimHeader = new Dimension(width-21,20);
//矩形区域
Rectangle area = new Rectangle(dim);
Rectangle graphArea = new Rectangle(dimGraph);
Rectangle headerArea = new Rectangle(dimHeader);
//背景白色
biContext.setColor(Color.white);
biContext.fill(area);
//阴影
graphArea.setLocation(18,42);
biContext.setColor(dropShadow);
biContext.fill(graphArea);
//用白色填充矩形区域
graphArea.setLocation(11,36);
biContext.setColor(Color.white);
biContext.fill(graphArea);
//画出黑色边界
biContext.setColor(Color.black);
biContext.draw(graphArea);
headerArea.setLocation(18,12);
biContext.setColor(dropShadow);
biContext.fill(headerArea);
//用蓝色填充标题区
headerArea.setLocation(11, 5);
biContext.setColor(headerColor);
biContext.fill(headerArea);
//画出头部文字
biContext.setFont(font);
biContext.setColor(Color.white);
biContext.drawString(averageText,150,18);
return biContext;
}
}
%>
文件index.jsp--
<%@ page contentType = "text/html;charset = gb2312" language = "java"%>
<%@ page import = "java.awt.*"%>
<%@ page import = "java.io.*"%>
<%@ page import = "java.awt.image.*"%>
<%@ page import = "com.sun.image.codec.jpeg.*"%>
<%@ include file = "graphBG.jsp"%>
<%
//声明产品名称数组
String datanames[] = {"Apples","Oranges","Peaches","Lemons","Grapefruit"};
//声明销售数量数组
int datavalues[] = {11,62,33,102,50};
int y_pos = 0;
int headerOffset = 50;
int innerOffset = 20;
int barHeight = 10;
int textHeight = 20;
int displayHeight = barHeight + textHeight;
Color barColor = new Color(153,19,19);
int width = 300;
int height = (datavalues.length * displayHeight) + headerOffset + innerOffset;
int innerWidth = width - (innerOffset * 2);
//计算平均值
int average = 0;
for(int i = 0;i < datavalues.length;i++){
average += datavalues[i];
}
average = average / datavalues.length;
//查找最大值
int maximum = 0;
for(int i = 0;i < datavalues.length;i++){
if(datavalues[i]>maximum){
maximum = datavalues[i];
}
}
response.setContentType("image/jpeg");
BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2D biContext = bi.createGraphics();
//声明画图类的实例,画出标题区和外部边界
graphBG gr = new graphBG();
gr.draw(biContext,width,height,"Ferm Produce","Overall Average:" + average);
///
//在图像中画出数据信息
/
//循环画出每个产品的直方图
for(int i = 0;i < datavalues.length;i++){
int currentValue = datavalues[i];
//设置直方图中每个方块的Y坐标的位置
y_pos = i* displayHeight + headerOffset;
//设置直方图中每个方块的宽度
int barWidth = (innerWidth * currentValue)/maximum;
String display = datanames[i] + "(" + currentValue + ")";
biContext.setColor(Color.black);
biContext.drawString(display,20,y_pos);
biContext.setColor(barColor);
Dimension bar = new Dimension(barWidth,barHeight);
Dimension barBorder = new Dimension(barWidth - 3,barHeight - 3);
Rectangle barRect = new Rectangle(bar);
Rectangle barRectBorder = new Rectangle(barBorder);
//画出每个直方图中方块的边界
barRect.setLocation(21,5+y_pos);
barRectBorder.setLocation(22,6+y_pos);
biContext.setColor(barColor);
biContext.fill(barRect);
biContext.setColor(Color.white);
biContext.draw(barRectBorder);
}
//对图像编码显示
OutputStream output = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(bi);
output.close();
%>
<%@ page language="java" contentType = "text/html;charset = gb2312" import = "java.awt.*" errorPage = ""%>
<%!
public class graphBG{
Font font = new Font("ARIAL",Font.BOLD,11);
Color headerColor = new Color(20,50,100);
public Graphics2D draw(Graphics2D biContext,int width,int height,String headerText,String averageText){
//阴影颜色
Color dropShadow = new Color(200,200,200);
//标题
Dimension dim = new Dimension(width,height);
Dimension dimGraph = new Dimension(width-21,height-51);
Dimension dimHeader = new Dimension(width-21,20);
//矩形区域
Rectangle area = new Rectangle(dim);
Rectangle graphArea = new Rectangle(dimGraph);
Rectangle headerArea = new Rectangle(dimHeader);
//背景白色
biContext.setColor(Color.white);
biContext.fill(area);
//阴影
graphArea.setLocation(18,42);
biContext.setColor(dropShadow);
biContext.fill(graphArea);
//用白色填充矩形区域
graphArea.setLocation(11,36);
biContext.setColor(Color.white);
biContext.fill(graphArea);
//画出黑色边界
biContext.setColor(Color.black);
biContext.draw(graphArea);
headerArea.setLocation(18,12);
biContext.setColor(dropShadow);
biContext.fill(headerArea);
//用蓝色填充标题区
headerArea.setLocation(11, 5);
biContext.setColor(headerColor);
biContext.fill(headerArea);
//画出头部文字
biContext.setFont(font);
biContext.setColor(Color.white);
biContext.drawString(averageText,150,18);
return biContext;
}
}
%>
文件index.jsp--
<%@ page contentType = "text/html;charset = gb2312" language = "java"%>
<%@ page import = "java.awt.*"%>
<%@ page import = "java.io.*"%>
<%@ page import = "java.awt.image.*"%>
<%@ page import = "com.sun.image.codec.jpeg.*"%>
<%@ include file = "graphBG.jsp"%>
<%
//声明产品名称数组
String datanames[] = {"Apples","Oranges","Peaches","Lemons","Grapefruit"};
//声明销售数量数组
int datavalues[] = {11,62,33,102,50};
int y_pos = 0;
int headerOffset = 50;
int innerOffset = 20;
int barHeight = 10;
int textHeight = 20;
int displayHeight = barHeight + textHeight;
Color barColor = new Color(153,19,19);
int width = 300;
int height = (datavalues.length * displayHeight) + headerOffset + innerOffset;
int innerWidth = width - (innerOffset * 2);
//计算平均值
int average = 0;
for(int i = 0;i < datavalues.length;i++){
average += datavalues[i];
}
average = average / datavalues.length;
//查找最大值
int maximum = 0;
for(int i = 0;i < datavalues.length;i++){
if(datavalues[i]>maximum){
maximum = datavalues[i];
}
}
response.setContentType("image/jpeg");
BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2D biContext = bi.createGraphics();
//声明画图类的实例,画出标题区和外部边界
graphBG gr = new graphBG();
gr.draw(biContext,width,height,"Ferm Produce","Overall Average:" + average);
///
//在图像中画出数据信息
/
//循环画出每个产品的直方图
for(int i = 0;i < datavalues.length;i++){
int currentValue = datavalues[i];
//设置直方图中每个方块的Y坐标的位置
y_pos = i* displayHeight + headerOffset;
//设置直方图中每个方块的宽度
int barWidth = (innerWidth * currentValue)/maximum;
String display = datanames[i] + "(" + currentValue + ")";
biContext.setColor(Color.black);
biContext.drawString(display,20,y_pos);
biContext.setColor(barColor);
Dimension bar = new Dimension(barWidth,barHeight);
Dimension barBorder = new Dimension(barWidth - 3,barHeight - 3);
Rectangle barRect = new Rectangle(bar);
Rectangle barRectBorder = new Rectangle(barBorder);
//画出每个直方图中方块的边界
barRect.setLocation(21,5+y_pos);
barRectBorder.setLocation(22,6+y_pos);
biContext.setColor(barColor);
biContext.fill(barRect);
biContext.setColor(Color.white);
biContext.draw(barRectBorder);
}
//对图像编码显示
OutputStream output = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(bi);
output.close();
%>