日期:2014-05-20  浏览次数:20788 次

怎样在图片上画线?JAVA
我想问下,怎样加载一个图片并在图片上画线?
我是想实现跟踪其它机子的鼠标位置显示在自己的机子上,鼠标的实时变化坐标我已经获得,但不知道怎么加载一张图片,在图片上根据鼠标坐标的位置划个十字线.但不知道怎么实现,画线是不是一定要在CANVAS上画啊,可CANVAS又不能设背景图片,该怎么实现啊,有没有谁知道请帮我解决下,急.能给示例代码最好

------解决方案--------------------
任何componet上都能画 重载paint函数 在paint函数里画
------解决方案--------------------
你把图片画上去,然后再画线就行了
------解决方案--------------------
drawline
------解决方案--------------------
在JSP上加载applet程序
<applet code= "你的applte程序的class " width=320 height=220>
在JSP上加载图片
<param name= "imgName " value= "lines.jpg ">
------解决方案--------------------
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;
class ImagePanel extends JPanel implements MouseInputListener
{
private Image img;
private int x = 0,y = 0;
public ImagePanel(Image img)
{
this.img = img;
addMouseListener(this);
}
public void paint(Graphics g)
{
g.drawImage(img,0,0,null);
if(x != 0 && y != 0)
{
g.drawLine(x-5,y,x+5,y);
g.drawLine(x,y-5,x,y+5);
}
}

public void drawLine(int x,int y)
{
this.x = x;
this.y = y;
repaint();
}

public void mouseClicked(MouseEvent e) {

int x = e.getPoint().x;
int y = e.getPoint().y;
drawLine(x,y);
}

public void mousePressed(MouseEvent e) {

}

public void mouseReleased(MouseEvent e) {

}

public void mouseEntered(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mouseDragged(MouseEvent e) {

}

public void mouseMoved(MouseEvent e) {

}

}
public class ImageLineTest extends JFrame {

ImagePanel p = null;

public void drawLine(int x,int y)
{
p.drawLine(x,y);
}

public void init()
{
setSize(200,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Image img = getToolkit().getImage( "c:\\mao.jpg ");
p = new ImagePanel(img);
this.getContentPane().add(p);
show();
}

public static void main(String[] arg) throws Exception
{
ImageLineTest test = new ImageLineTest();
test.init();
}
}


这样就可以了,运行以后点击某个地方就会出现一个十字线