http://49.images22.51img1.com/6000/a502086525/9790805a52e37ce0cd5e2ed0efeaba34.jpg[/url]http://44.images22.51img1.com/6000/a502086525/4873318f43771e96752800eeb4ac9282.gif图片都是一样的,防止无法显示图片。
求用java生成所示图片,数据都是动态的.
可以提供下载列子,可以提供代码参考.http://44.images22.51img1.com/6000/a502086525/4873318f43771e96752800eeb4ac9282.gif
[url=http://49.images22.51img1.com/6000/a502086525/9790805a52e37ce0cd5e2ed0efeaba34.jpg]
解决方案 »
- 和spring依赖注入有关。。菜鸟求指导
- struts中过滤器配置问题(高手进来)
- hibernate保存时错误FlushMode.NEVER/MANUAL
- 请教:如何在Swing JTable的表头增加一个Check Box?
- 想学ssh框架,不知道从哪里入手?
- 有没讲Spring好点的书
- dom4j怎么获得指定名称的节点信息
- 小弟自已写了几张网页,想用tomcate 让这个小站可以访问。请问有这方面经验的朋友我该如何去做。急急急!!!
- 请问上海的朋友:浦东软件园的企业用J2EE的多还是.NET的多?
- struts中jsp图象显示出问题,struts到底好在哪里?
- hibernate2 升级 hibernate3的问题
- java报表工具
package com.gepower.ps.eps.topissuesadmin.common;
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.commons.lang.NumberUtils;
/**
*
* <p>
* Title: TIMT
* </p>
* <p>
* Description: 2008-03
* </p>
* <p>
* Copyright: Copyright (c) 2006
* </p>
* <p>
* Company: TCS
* </p>
*
* @author Xujin.Jiao
* @version 4.0
*/
public class CinScoreImgServlet extends HttpServlet {
public static final long serialVersionUID = 123888839L;
public CinScoreImgServlet() {
}
public void init() throws ServletException {
super.init();
}
public void destroy() {
super.destroy();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
process(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
process(request, response);
}
protected void process(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean drawTriangle = true;
int width = TopIssueAdminConstants.CIN_IMAGE_WIDTH;
int height = TopIssueAdminConstants.CIN_IMAGE_HEIGHT;
int halfTrag = (int)Math.round(height / Math.sqrt(3d));
int axisWidth = width - halfTrag;
int cinScore = 0;
int tragXpos = axisWidth;
String cinScoreStr = request.getParameter("cinScore");
if (null != cinScoreStr && cinScoreStr.trim().length() > 0) {
try {
if (!NumberUtils.isNumber(cinScoreStr)) {
drawTriangle = false;
} else if (Integer.parseInt(cinScoreStr) < 0) {
drawTriangle = false;
} else {
cinScore = Integer.parseInt(cinScoreStr);
tragXpos = axisWidth - (int)Math.round((cinScore * axisWidth) / TopIssueAdminConstants.MAX_CIN_SCORE);
}
} catch (Exception e) {
drawTriangle = false;
EPSLogger.debug("process() : Error in CinScoreImgServlet : "+ e.getMessage());
}
}
BufferedImage bi = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)bi.getGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, width, height);
g2.setColor(Color.black);
g2.drawLine(0, 0, 0, height);
g2.drawLine(axisWidth / 2, 0, axisWidth / 2, height);
g2.drawLine(axisWidth, 0, axisWidth, height);
float dashes[] = {10, 2};
g2.setPaint(Color.black);
g2.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER,
10, dashes, 0 ));
g2.draw(new Line2D.Double(0, height / 2, axisWidth, height / 2));
if (drawTriangle) {
int xValues[] = {tragXpos, tragXpos + halfTrag, tragXpos - halfTrag};
int yValues[] = {0, height, height};
g2.setColor(Color.CYAN);
g2.fillPolygon(xValues, yValues, 3);
}
response.setContentType("image/jpg");
try {
ImageIO.write(bi, "jpg", response.getOutputStream());
} catch(IIOException ex) {
EPSLogger.debug("process() : Error in CinScoreImgServlet : "+ ex.getMessage());
}
}
}
在web.xml中加上这个:
==================================================================
<servlet>
<servlet-name>DisplayCinImage</servlet-name>
<servlet-class>com.gepower.ps.eps.topissuesadmin.common.CinScoreImgServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>DisplayCinImage</servlet-name>
<url-pattern>/servlet/DisplayCinImage</url-pattern>
</servlet-mapping>
JSP中这样使用:
===============================================================
<td align="center">
<img src="<%=request.getContextPath()%>/servlet/DisplayCinImage?cinScore=<%=roundOff(tMB.getCinScore())%>" alt="CIN Score=<%=roundOff(tMB.getCinScore())%>" />
</td>
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints;
import java.awt.Stroke;
import java.awt.geom.GeneralPath;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;@SuppressWarnings("serial")
public class CoordinateSystem extends JPanel {
private int unitSize = 20;
private int ox = 100; // 原点的横坐标
private int oy = 100; // 原点的纵坐标
private int originalPaddingLeft = 110; // 原点离窗口左边的距离
private int originalPaddingBottom = 110; // 原点离窗口底部的距离 public CoordinateSystem() {
setBackground(Color.WHITE);
} @Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ox = originalPaddingLeft;
oy = getHeight() - originalPaddingBottom;
g2d.translate(ox, oy);
g2d.scale(1, -1); // 绘制坐标系
drawGrid(g2d);
drawAxis(g2d);
} // 绘制网格线
private void drawGrid(Graphics2D g2d) {
Paint oldPaint = g2d.getPaint();
Stroke oldStroke = g2d.getStroke(); g2d.setPaint(Color.decode("#CCCCCC"));
Stroke stroke = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0,
new float[] { 4, 2 }, 0);
g2d.setStroke(stroke); int ww = getWidth();
int wh = getHeight(); // 绘制横线
for (int y = 0; y < oy + unitSize; y += unitSize) {
g2d.drawLine(-ox, y, ww - ox, y);
}
for (int y = -unitSize; y > -(wh - oy) - unitSize; y -= unitSize) {
g2d.drawLine(-ox, y, ww - ox, y);
} // 绘制纵线
for (int x = 0; x < ww - ox + unitSize; x += unitSize) {
g2d.drawLine(x, oy, x, -(wh - oy));
}
for (int x = -unitSize; x > -(ww - ox) - unitSize; x -= unitSize) {
g2d.drawLine(x, oy, x, -(wh - oy));
} g2d.setPaint(oldPaint);
g2d.setStroke(oldStroke);
} // 绘制坐标轴
private void drawAxis(Graphics2D g2d) {
Paint oldPaint = g2d.getPaint();
Stroke oldStroke = g2d.getStroke(); g2d.setStroke(new BasicStroke(1));
int tw = 13;
int th = 4;
int endX = unitSize * 14;
int endY = unitSize * 10; // 绘制横坐标轴
GeneralPath triangle = new GeneralPath();
triangle.moveTo(endX, 0);
triangle.lineTo(endX - tw, th);
triangle.lineTo(endX - tw, -th);
triangle.closePath();
g2d.setPaint(Color.decode("#000000"));
g2d.drawLine(0, 0, endX, 0);
g2d.fill(triangle); // 绘制纵坐标轴
triangle.moveTo(0, endY);
triangle.lineTo(th, endY - tw);
triangle.lineTo(-th, endY - tw);
triangle.closePath();
g2d.drawLine(0, 0, 0, endY);
g2d.fill(triangle); g2d.setPaint(oldPaint);
g2d.setStroke(oldStroke);
} private static void createGuiAndShow() {
JFrame frame = new JFrame("");
frame.getContentPane().add(new CoordinateSystem()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 400);
frame.setAlwaysOnTop(true);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
} public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createGuiAndShow();
}
});
}
}class Task {
int startDay;
int duration; public Task(int startDay, int duration) {
this.startDay = startDay;
this.duration = duration;
}
}