package Windows;
/*
* 作者:
* 日期:
* 功能:通过拖动鼠标--通过拖动鼠标在窗口内绘制图形
* 分许:鼠标按下时开始捕捉点的坐标,拖动时再次捕捉,画线
*
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.geom.*;
public class DragDrawFrameDemo {
public static void main(String[] args) {
new DragDrawFrame();
}
}
class DragDrawFrame extends JFrame implements MouseListener,MouseMotionListener
{
private static final long seriaid=1L;
JPanel pane1;
int x1,x2,y1,y2;
public DragDrawFrame()
{
pane1=new JPanel();
this.add(pane1);
//设置监听
this.addMouseListener(this);
this.addMouseMotionListener(this);
this.setSize(300,300);
this.setTitle("徒手绘图");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//实现接口中的所有方法
public void mouseDragged(MouseEvent e) {
Graphics2D g= (Graphics2D)getGraphics();
x2=e.getX();
y2=e.getY();
g.draw(new Line2D.Double(x1,y1,x2,y2));//绘制直线
x1=x2;y1=y2;
g.dispose();//释放次图形的上下文,并释放它用到的所有系统资源
}
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent event) {
x1=event.getX();
y1=event.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}