画板项目

画板项目:
一、有总体的思路是很重要的。
1.	创建窗体,添加三个面板,按钮区、画板区和颜色区。
2.	添加按钮,设置布局
3.	安装按钮监听器
4.	获取画笔
5.	功能的实现
二、因为代码较长,所以要创建多个类,这时候就需要注意传参的问题。例如,在MypanelCenter类中要用drawBoard类中的一个属性,往往可以把drawBoard的对象传进MypanelCenter类中   MyPanelCenter panelCenter=new MyPanelCenter(this);在 MypanelCenter类中必须要重写构造函数。
  	public drawBoard1 d;
public MyPanelCenter(drawBoard1 d1){
		  d = d1;
	  }
三、 this的用法
This是指本类中的对象。在(二)中,如果把	public drawBoard1 d;语句改成	public drawBoard1 d1;这时d1与构造函数的形参一致,可以用this。此时:构造函数应为:
       this.d1 = d1;
四、实现按钮的功能
要设置按钮的命令名,安装鼠标监听器,设置command变量得到命令名
//画直线
if("image10".equals(command)){
   			g.drawLine(x1,y1,x2,y2);
}
然后画相应的图形
五、图形重绘
图形在缩小或是有些移动时画出来的图形会消失,所以要进行图形重绘。重绘的方法:
1、用多态性实现,这时要定义多个方法。这些方法中属性都一样,只有画图形的方法不同,所以可以使用继承减少代码量。
2、Paint方法    用于绘制组件, 绘制的图形需要在哪个组件上,则重写相应组件的paint方法。
六、画笔功能的实现
1、直线、矩形、圆角矩形、椭圆有直接的方法调用。多边形实际上也是画直线。但是最后要把图形封闭。
2、铅笔、刷子、笔擦是同一类型,是通过画直线的方法实现,笔擦和刷子与铅笔的不同是笔的颜色和大小。
x2=e.getX();
  	  		y2=e.getY();
  	  		g.drawLine(x1, y1, x2, y2);
  	   		x1=x2;
  	   		y1=y2;笔的大小要用Graphics2D类实现。值得注意的是:在用完笔擦和刷子后要还原笔使用前的样子。
     喷漆与这三个也有相同之处,只不过喷漆是由很多点组成,所以画直线时点,且要用到随机数,	g.drawLine(x2+value1, y2+value2, x2+value1, y2+value2);
3、吸管
吸管是有点复杂的,先用Robot类创建对象,截取图片,获取像素,然后才能得到颜色,最后是画线。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值