铅笔:
使用到的类与方法: MouseAdapter接口 MouseMotionListener 监听器 mouseDragged方法
获取两个点的坐标x1,y1,x2,y2
首个x1,y1在MouseAdapter接口 MouseListener 监听器mousePressed方法 getX,getY获得的
mouseDragged方法中
getX,getY获得x2,y2
之后画线 g.drawLine(x1,y1,x2,y2);
再做交换 x1=x2;
y1=y2;
注意:x2,y2的获得的必须在画线之前, 要不会画很多不连续的点
参数传递:
参数传递的重要:你想过没有,20个类,无数个private属性 都可在一个类中获得
当然不是让你重新创建20个的对象(访问不到已经初始化或赋值好的private属性),而是通过构造方法去传递参数
(传递已经建立好的类的对象),在用setX();getX()方法可以访问/修改任意的private属性;
结论:传类的对象实现private属性的动态获取;set,get方法很强大— —
刷子_橡皮的实现:
在上面已经写了铅笔的实现:刷子和橡皮(白色)(g.setColor(Color.white))只是加粗一点
在上面画线的那里(g.drawLine(x1,y1,x2,y2);),改为:
Graphics2D g2 = (Graphics2D)g; //Graphics 强转为Graphics2D
Line2D lin = new Line2D.Float(x1, y1, x2, y2);
g2.draw(lin);
g2.setStroke(new BasicStroke(5));
g2.drawLine(x1,y1,x2,y2);
其他不变(交换)。