jsp如何绘图
各位大虾们,请教一个问题,在一个jsp页面中如何绘图呢,我的想法是在页面中加一个文本框和一个按钮,文本框里的内容是图上节点的内容,点击按钮,然后生成一个节点,再输入一个,再点,生成另一个节点,而且还要让这两个节点用一条线连接起来,类似画多好节点,最后还得把这些节点保存在数据库中,不知道在jsp页面能否实现,或者还有别的什么实现方式希望大师们提出合理的意见或建议!谢谢了
[解决办法]
按照你的邏輯,基本上是可行的。
把一次畫圖的點當作一個集合,server 端寫一個動態圖形產生程式,這樣就能達到。
比較麻煩的是定義連線,要用純網頁定義,會有點麻煩,因為每新增一個點(n+1),就會多很多連線(n)。
這部分處理好,要畫圖就容易許多。
[解决办法]
用JFreechart!
[解决办法]
我一般是使用java.awt.Graphics画图然后生成图片展现在jsp里,不知道能不能在jsp直接画图。关注。。。
[解决办法]
你用java画好图,然后再jsp调用
不过flex真的不错,~
[解决办法]
在jsp中去调用applet.
[解决办法]
import java.applet.Applet;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.JButton;
public class AppletDemo extends Applet {
public void init() {
int width = 300;
int height = 200;
final BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g2 = image.getGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, width, height);
JButton save = new JButton("save");
JButton link = new JButton("link");
pointX = new ArrayList();
pointY = new ArrayList();
save.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
ImageIO .write(image, "jpg", new File("c:/test.jpg"));
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
link.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
Graphics g = getGraphics();
Graphics g2 = image.getGraphics();
int[] x = new int[pointX.size()];
int[] y = new int[pointY.size()];
for(int i = 0; i < pointX.size(); i++) {
x[i] = Integer.parseInt((String) pointX.get(i));
y[i] = Integer.parseInt((String) pointY.get(i));;
}
g2.setColor(Color.BLACK);
g.drawPolyline(x, y, pointX.size());
g2.drawPolyline(x, y, pointX.size());
}
});
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
Graphics g = getGraphics();
Graphics g2 = image.getGraphics();
g2.setColor(Color.BLACK);
int radius = 10;
g.drawOval(e.getX(), e.getY(), radius, radius);
g.fillOval(e.getX(), e.getY(), radius, radius);
g2.drawOval(e.getX(), e.getY(), radius, radius);
g2.fillOval(e.getX(), e.getY(), radius, radius);
pointX.add(String.valueOf(e.getX()));
pointY.add(String.valueOf(e.getY()));
}
});
this.add(link);
this.add(save);
this.setPreferredSize(new Dimension(200, 300));
this.setVisible(true);
}
private ArrayList pointX;
private ArrayList pointY;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Applet Demo</title>
</head>
<body>
<applet code="AppletDemo.class" width="300" height="200" name="applet demo"></applet>
</body>
</html>