`
朱辉辉33
  • 浏览: 27975 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

重绘之画图板

    博客分类:
  • java
 
阅读更多
       上次博客讲的五子棋重绘比较简单,因为只要在重写系统重绘方法paint()时加入棋盘和棋子的绘制。这次我想说说画图板的重绘。
       画图板重绘难在需要重绘的类型很多,比如说里面有矩形,园,直线之类的,所以我们要想办法将里面的图形加入一个队列中,这样在重绘时就可以取出队列中的所以图形,然后绘制。
  首先我们可以创建一个接口,命名为shape(),里面只有draw()一个方法,这样我们建其他图形类时都可以继承这个接口,例如
public class Rect implements Shape{
   int x,y,width,height;

           public Rect(int x, int y, int width, int height) {
                     super();
                     this.x = x;
                     this.y = y;
                     this.width = width;
                     this.height = height;
   }

                  public void draw(Graphics g) {
                  g.drawRect(x, y, width, height);

          }

}
       这样我们每在画图板上绘制一个图形,都同时把这个图形加入队列list中,重绘时只要把每个图形取出来,然后调用它的draw()方法,这样就全部绘制出来了。
       JPanel drawpanel =new JPanel(){

       public void paint(Graphics g){

        super.paint(g);   for(int i=0;i<list.size(); i++){
         Shape shape = (Shape)list.get(i);
         shape.draw(g);
     }
}
         };
0
0
分享到:
评论

相关推荐

    Java画图板应用

    通过重写paintComponent方法,可以确保每次窗口重绘时都能正确显示当前的绘图状态。 对于保存和加载功能,Java提供了文件I/O流类,如FileInputStream和FileOutputStream,用于读写文件。图像数据可以被序列化为二...

    QTcreator写画图板

    paintEvent是一个在QWidget中定义的事件处理函数,当组件需要重绘时,它会自动被调用。在绘图应用中,这个函数通常会被用来绘制图像。 #### QImage与QPainter QImage是一个图像表示类,用于处理图像数据。QPainter...

    BMP格式解析与保存 画图板的重绘

    在本文中,我们将深入探讨BMP格式的解析与保存,并结合画图板的重绘功能来讲解这一主题。 首先,我们需要理解BMP文件的结构。BMP文件分为两部分:文件头和图像数据。文件头包含文件信息,如文件大小、图像宽度、...

    C# 画图板 源码

    在C#编程环境中,开发一个画图板是一个常见的练习,用于学习图形用户界面(GUI)设计和绘图操作。这个“C# 画图板 源码”项目,适用于.NET Framework 1.1和2.0,展示了如何利用C#语言实现一个基本的绘画应用程序。...

    vc画图板源码

    2. 绘图处理:在OnPaint()消息处理函数中,当窗口需要重绘时,会调用BeginPaint()和EndPaint()来获取CDC对象,并在其中进行绘图操作。 3. 用户交互:程序需要响应用户的鼠标和键盘事件,如WM_LBUTTONDOWN、WM_...

    Java简易画图板

    这可能是通过设置一个特定的颜色(如背景色)和不透明度,然后在指定区域内重绘,以达到擦除效果。 5. **颜色选择**:用户可以改变画笔颜色,这需要实现颜色选择器,可能是一个颜色对话框,用户选择颜色后,将所选...

    MFC做的画图板

    这个函数会在视图需要重绘时被调用,我们可以在这里使用GDI (Graphics Device Interface) 来绘制图形。GDI 提供了一系列的函数,如MoveTo、LineTo、Rectangle、Ellipse 和Polyline,它们分别用于绘制线条、矩形、...

    简单画图板的设计

    10. **性能优化**:对于大规模的绘图操作,可能需要关注性能优化,如减少不必要的重绘,利用缓存技术提高效率,或者采用异步处理以避免阻塞用户界面。 以上就是关于"简单画图板的设计"的一些核心知识点。实际实现时...

    VC++实现简单的画图板程序

    你需要定义消息映射来处理特定的消息,如WM_PAINT消息用于窗口重绘,WM_LBUTTONDOWN和WM_LBUTTONUP用于处理鼠标点击。 7. **文件I/O**:为了实现打开和保存BMP文件的功能,你需要使用CFile类或者更高级的fstream来...

    virtual c++6.o mfc简易画图板

    2. **OnPaint事件**:当窗口需要重绘时,系统会发送WM_PAINT消息,通过覆盖CWnd的OnPaint函数来处理图形的绘制。 3. **CDC类**:设备上下文(Device Context,DC)是Windows图形模型的核心,CDC类封装了与设备相关...

    C#的简单画图板源码

    在C#编程环境中,开发一个简单的画图板是一项常见的练习,可以帮助初学者更好地理解图形用户界面(GUI)的创建和事件处理。这个源码提供了一个基础的画图应用,允许用户绘制矩形、曲线和椭圆,并且可以选择系统提供...

    仿 XP 系统画图板

    4. **重绘机制**:为了保证画图板的实时性,开发者可能利用了JAVA的重绘机制,如`repaint()`方法,当画布上的内容发生变化时,会自动调用该方法进行更新,确保用户能即时看到画图的效果。 5. **图像处理**:除了...

    java画图板

    Java简单swing程序,模拟实现windows画图板的功能,实现规则、不规则图形的绘制,颜色填充,撤销重绘等功能

    c#画图板的简单实现,看看

    6. **擦除与重绘**: 为了实现擦除功能,可以创建一个白色的Pen,然后在擦除区域调用DrawRectangle方法。但请注意,Windows Forms的Graphics对象通常不会自动清除画布,所以可能需要在Paint事件中实现自己的清除...

    MFC 画图板完整源码

    这个函数会在窗口需要重绘时被调用,开发者可以在这里实现各种绘图逻辑。例如,用户可能会使用鼠标进行绘制,程序需要捕获WM_MOUSEMOVE和WM_LBUTTONDOWN等消息,根据鼠标的当前位置在画布上添加线条或形状。 此外,...

    VC++6.0画图板

    5. **OnPaint消息**:当窗口需要重绘时,Windows会发送WM_PAINT消息。我们需要重载CWnd的OnPaint成员函数,来实现自定义的绘图逻辑。 6. **CPaintDC类**:为了在窗口上绘图,我们将使用CPaintDC类,它是设备上下文...

    基于VC++MFC程序设计——简易画图板

    该画图板的主要功能包括但不限于图形的绘制、线型与颜色的设置、图形文件的重绘及保存等。 #### MFC与VC++简介 1. **VC++6.0:** - VC++6.0是微软发布的一款在Windows平台上的强大C++编译器。 - 它提供了高级的...

    android画图板

    在Android平台上,开发一款画图板应用是一种常见的需求,它可以让用户进行自由绘画、涂鸦或者进行图形设计。本文将详细解析"android画图板"这个主题,介绍如何在Android中实现一个基本的画线功能,并探讨两种不同的...

    简单画图板

    “关于‘画图板’”窗口 4.画橡皮、刷子、喷枪时可以选择画笔粗细 5.画矩形、圆角矩形时可以选择是否填充 6.改变指针的形状 7.光标进入绘图区域时实时显示光标坐标 8.撤销用户上一步绘画 9.改变主题 10.当...

Global site tag (gtag.js) - Google Analytics