xp画图板学习阶段性小结1
在画图板的学习中我实现了刷子、橡皮等功能,下面说说我在学习这个这些功能的收获。刷子就相当于是加大版的铅笔功能,但是要加大版的铅笔在Graphics是不能实现的,因为Graphics不能提供改变画笔大小的方法,这时候我们就需要Graphics的一个子类Graphics2D来提供这种方法,Graphics与Graphics2D属于继承关系(extends),它提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制,要改变画笔的大小还需要用到一个接口Stroke,但接口不能直接定义一个类,这时候我们还要他的一个实现类BasicStoke来设置画笔的大小,具体的步骤是:
1、对画布g进行强转,强转成Graphis2D(Graphics2D g2 = (Graphics2D)g);
2、设置画笔的大小(g2.setStroke(new BasicsStroke(这里加画笔的大小值));
3、如果是要实现橡皮的功能还要把橡皮的颜色设置成画布一样的颜色,一般是白色
*********************************************************
else if("brush".equals(command)){
Graphics2D g2 = (Graphics2D)g;//把g抢抓成Graphics2D
g2.setStroke(new BasicStroke(5.0f));//设置刷子的大小
g2.setColor(color);//获取画布颜色
g2.drawLine(x1,y1,x2,y2);
list.add(x1);
list.add(y1);
list.add(x2);
list.add(y2);
list.add("brush");
x1 = x2;
y1 = y2;
list.add(color);
}
else if("eraser".equals(command)){
Graphics2D g2 = (Graphics2D)g;//对画布g进行强转
g2.setStroke(new BasicStroke(6.0f));//设置橡皮的大小
g2.setColor(Color.white);//把橡皮的颜色设为白色
g2.drawLine(x1, y1, x2, y2);
list.add(x1);
list.add(y1);
list.add(x2);
list.add(y2);
list.add("eraser");
x1 = x2;
y1 = y2;
list.add(g2.getColor());
}