通过拖动鼠标在窗口内绘制图形

在这里插入图片描述
在这里插入图片描述

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
		
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学工科的皮皮志^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值