创意画板(一)

创意画板之绘制直线、曲线、橡皮擦

这是结合一些知识点交织在一起的一个作品吧,也就玩一玩,知识点都很简单

知识点

给窗体加鼠标监听

思路

获取鼠标按压点、释放点
利用画笔的绘制方法进行各种绘制

一、鼠标监听绘制直线

监听事件处理类

public class DrawingListener extends MouseAdapter {

	private int x1, y1, x2, y2;// 声明四个变量,存储按下和释放的坐标值
	private Graphics g;// 声明画笔对象名(组件全部都是画出来的,要拿画笔,只要有组件对象就可以获取画笔)
	private JFrame frame;// 声明窗体对象名
	private Color color = Color.black;// 声明颜色属性

	public DrawingListener(JFrame frame) {
		this.frame = frame;
	}

	public void mousePressed(MouseEvent e) {
		// 获取按下坐标值
		x1 = e.getX();
		y1 = e.getY();
		// 从frame窗体上获取画笔对象 必须要在窗体可见之后才能获取画笔对象。
		g = frame.getGraphics();
		// 设置画笔的颜色
		g.setColor(color);
	}

	public void mouseReleased(MouseEvent e) {
		// 获取释放坐标值
		x2 = e.getX();
		y2 = e.getY();
		g.drawLine(x1, y1, x2, y2);
	}

}

界面类中
窗体可视化之后添加

public class Drawing {
	DrawingListener dl;

	public static void main(String[] args) {
		Drawing draw = new Drawing();
		draw.initUI();
	}

	public void initUI() {
		// 实例化JFrame窗体对象,设置窗体的属性值
		JFrame frame = new JFrame("Kevin之创意画板");
		frame.setSize(750, 500);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(3);
		frame.setLayout(new FlowLayout());// 设置窗体的布局方式为流式布局
		// 实例化事件处理类的对象,对象名为dl
		frame.setVisible(true);
		dl = new DrawingListener(frame);
		frame.addMouseListener(dl);
	}
}

二、绘制曲线

怎么绘制曲线呢?
曲线就是跟随鼠标不断画直线(很短)
所以就需要给窗体添加frame.addMouseMotionListener()监听

监听类中添加

public void mouseDragged(MouseEvent e) {
		System.out.println("+++");
		x2 = e.getX();
		y2 = e.getY();
		g.drawLine(x1, y1, x2, y2);
		x1 = x2;
		y1 = y2;
	}

界面类中添加

frame.addMouseMotionListener(dl);

三、橡皮擦

在mouseDragged(MouseEvent e)方法中更改曲线的绘制
1、获取窗体背景颜色
2、绘制填充圆或矩形

g.setColor(frame.getContentPane().getBackground());
g.fillOval(x1, y1, 20, 20);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值