读书人

java学习小结(画板重绘)

发布时间: 2012-12-22 12:05:06 作者: rapoo

java学习总结(画板重绘)

学习重绘后的总结

1.为什么要重绘?
?我们在窗体中画了图形,当我们最小化窗体或者弹出颜色选择器时,原来的图形就不见了,于是我们需要学习重绘。

2.重绘就是把原来画的图形重新在窗体中画出来,即当我们最小化窗体或者弹出颜色选择器时,原来的图形还表现在窗体上。

3.重绘的实现:
?1.重绘运用到了我上一节课学的自定义队列。我们把我们所画的图形都存入队列中,
?当最小化窗体或者弹出颜色选择器时,再将之前画好的(保存在队列中的)图形对象重绘在窗体中。
?2.我的简易画板:
??1.建立一个窗体,带有可选择画图形的JRadioButton以及可以选择颜色的按钮。
??2.建立一个画图形的接口,写好画各种图形的实现该接口的类。
??如:
??

/**   * 定义一个画图形的接口   */  public interface IDraw {  public void draw(java.awt.Graphics g);  }

???

/** * 一个画直线的实现类 */  import java.awt.Color;import java.awt.Graphics;public class ImpLine implements IDraw{ //定义坐标属性 private int x1,y1,x2,y2; //定义颜色属性 private java.awt.Color color; //定义一个无参构造函数 public ImpLine(){} //定义一个带坐标值和颜色参数的参构造函数 public ImpLine(int x1,int y1,int x2,int y2,Color color){  this.x1 = x1;  this.y1 = y1;  this.x2 = x2;  this.y2 = y2;  this.color = color; } public void draw(Graphics g) {  g.setColor(color);  g.drawLine(x1, y1, x2, y2); }}

???
??
??3.定义一个自定义队列接口。
??4.定义一个实现自定义队列接口的实现类。
??
??5.添加事件监听器以及事件处理类。
??6.重绘需要用到paint(java.awt.Graphics g)方法,在含有主函数的类中
??

 //重绘的方法,这个方法会自动被调用   public void paint(java.awt.Graphics g){    //调用父类中的重绘方法    super.paint(g);    //利用循环,把存储在队列中的图形一个个画出来   }

??
重绘的总体思路是每画一个图形,就将该图形对象存入队列中,重绘就是将存储在队列中的图形对象再读取并画出来。
所以需要一个实现了自定义队列接口的类,用这个类实例化一个存储图形对象的对象,我们每画一个图形,就将该图形对象存入其中。

读书人网 >编程

热点推荐