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

简单画图板的设计

阅读更多

 一、功能介绍
1、画图功能:这个画图板可以实现直线、矩形、椭圆、填充矩形以及填充圆的画法。
2、颜色选择功能:可以设置画布的背景颜色,也可以设置图形的颜色,颜色是自己从选择器中自行选取的。

 

下面是画图板的效果图 



 
 
 
 
 

左边工具栏中依次是画圆,矩形,直线,填充圆,填充矩形。



 
 
 

 

 

 

改变背景颜色后的效果图

 
 

 

 

 

二、技术分析

在画图板的设计中主要用到了三个大的部分,即java.swing中的组件,事件监听器的使用以及队列这一数据结构,一下做简要分析.

1java.swing组件

要设计一个画图板,首先需要创建窗体(JFrame)以及窗体上的各个组件(JButtonJLabelJTextField)。而整个窗体的布局采用的是流式布局方法(java.awt.FlowLayout)。

2、事件监听器

在整个的设计中设计到了鼠标监听器MouseListener和动作监听器ActionListener两种,动作监听器用来获取按钮受点击这一事件,而鼠标监听器则主要应用于绘图中画布点坐标的获取。

3、队列

队列主要是由图形的重绘要求所引入的,通过队列将画板上所画下的图形保存到内存当中(就像直线,保存的是两个端点的横纵坐标),这样便不会因为窗体的改变而使得画布上的图形消失。为了通过队列保存图形,因此我们将队列类设置成泛型的。

下面是程序主要的构成,具体代码发到附件当中。



 
 

 

 

三、遇到的问题

在整个设计过程中,大的问题是在图形重绘部分遇到的,首先,没有弄清重绘的具体过程然后就在电脑屏幕上一顿乱敲,之后才知道其中道理。

首先,画布上的图形保存在缓存中,当窗体改变时(如最大化、最小化或者是改变其大小)画布中的内容就被清空了。因此需要通过队列将所绘图形保存下来(拿直线来说:队列保存的两个点的横纵坐标)。

其次,在窗体改变时,自动调用重绘函数paint(Graphics g);因此,可以在这个函数中间将队列中所存的图形重新拿出并且继续在画布上绘图就可以了。

最后,有一点需要注意,我们要将图形重绘到右边面板的画布上,因此重写的是underPal中的重绘函数。否则会将图形重绘到窗体JFrame的画布上。

 

 

      这是我学习java后写的第一个小程序,其中还有很多功能没有完善,比如说还没有三角形,圆角矩形的画法,不能撤销已经绘制的图形等等。有问题的地方希望大家能帮忙指正。

      在这么一个已经写好的了程序中,我还是感觉到了编程的不易,尤其是一些细节上的问题往往决定了整个程序的成败(比如说在图形的重绘以及该调用哪一个组建的paint()函数)。这一个程序算是我在博客上的开始,也是我java学习的开始,也是以后从事软件开发的开始,万里长征第一步,以后要更加努力!!!
 
 

  • 大小: 36.1 KB
  • 大小: 20.8 KB
  • 大小: 58.1 KB
  • 大小: 58.1 KB
6
4
分享到:
评论
1 楼 kowloonchen 2011-03-01  
继续加油!

相关推荐

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

    ### 基于VC++MFC程序设计——简易画图板 #### 概述 本文档将详细介绍如何利用VC++中的MFC(Microsoft Foundation Classes)框架来开发一款简易的画图板应用程序。该画图板的主要功能包括但不限于图形的绘制、线型...

    MFC 简易画图板

    在本文中,我们将深入...通过以上步骤,我们可以构建一个功能完备的MFC简易画图板应用。这个过程涉及到Windows编程基础、MFC类库的使用、图形绘制以及用户交互等多个方面,是学习MFC和Windows编程的一个良好实践项目。

    C#开发的简单画图板

    C# 开发的简单画图板 含源代码 C# 开发的简单画图板 含源代码 C# 开发的简单画图板 含源代码

    Flash简易画图板(选中工具作图)

    《Flash简易画图板:选中工具作图与互动功能详解》 在数字艺术和教育领域,Flash作为一种曾经广泛使用的交互式矢量图形和多媒体平台,曾为许多开发者提供了丰富的创作空间。本篇文章将深入探讨一个基于Flash开发的...

    Java简易画图板

    【Java简易画图板】是一个基于Java编程语言开发的简单图形绘制工具,它为用户提供了一个基本的画布,用户可以通过各种绘图工具进行创作。这个程序包含了一系列基础的图形元素和编辑功能,如直线、铅笔、圆形和矩形,...

    java 画图板 windows画图板简单实现

    在Java编程语言中,实现一个简单的Windows画图板是一个经典的练习,它可以帮助初学者更好地理解图形用户界面(GUI)的设计以及事件处理机制。这个项目通常会涉及到Java的Swing库,这是一个用于创建桌面应用程序的GUI...

    VB画图板 用户图形界面设计

    【VB画图板 用户图形界面设计】是一个使用Visual Basic(VB)编程语言开发的简易画图应用程序,重点在于用户界面的设计而非复杂的绘图功能。在这个项目中,开发者可能利用了VB的基本控件和事件处理机制来创建一个...

    画图板,window画图板

    Windows画图板,作为一款简单易用的图形编辑软件,是微软操作系统内置的一个基础工具,尤其适合初学者和儿童进行简单的绘图活动。它提供了丰富的基本画图功能,让用户能够轻松地进行创意表达。本文将深入探讨Windows...

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

    本项目“virtual c++6.0 mfc简易画图板”正是基于VC++ 6.0的MFC库,实现了类似Windows自带画图板的功能,让用户能够进行简单的图形绘制,如直线、圆、矩形和椭圆,并且可以调整线条的颜色和类型。 一、MFC库介绍 ...

    简易画图板程序java

    【简易画图板程序java】是一个基于Java编程语言实现的简单图形绘制软件,它涵盖了图形学的基本概念和技术,为用户提供了一个交互式的平台,可以进行基本的图形绘制操作。这个程序的核心功能包括画直线、绘制圆以及对...

    画图板c实现

    简易画图板设计的主要功能包括:图形绘制(如直线、矩形、圆形)、文件处理(保存和加载),并考虑了用户友好性和可扩展性。设计时,需关注用户习惯,确保软件的准确性、及时性、开放性、可扩展性、易用性和易维护性...

    java画图板程序代码

    Java 画图板程序设计与实现 Java 画图板是使用 Java 语言编写的图形绘制程序,提供了基本的绘图功能,如画笔、直线、椭圆、矩形等,用户可以使用该程序绘制简单的图形。下面我们将对 Java 画图板程序进行详细的分析...

    vc++简易画图板

    《VC++简易画图板详解》 在计算机编程领域,C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、应用软件、游戏开发、驱动程序等各个领域。本项目以VC++为工具,利用MFC(Microsoft Foundation Classes)...

    vc++课程设计 Paint Board简易画图板

    【VC++课程设计——Paint Board简易画图板】 在计算机科学与技术领域,尤其是软件开发方向,VC++(Visual C++)是一种广泛使用的集成开发环境,由微软公司提供,用于编写C++语言的程序。本课程设计项目“Paint ...

    仿照win的简易画图板

    【标题】"仿照win的简易画图板"是一个基于计算机图形学原理和技术,模仿Windows操作系统内置的“画图”程序开发的简单图形编辑软件。这个应用提供了基本的绘图工具,让用户能够进行简单的图形创作和编辑。 【描述】...

    VB语言编写的简易画图板程序

    【VB语言编写的简易画图板程序】 VB(Visual Basic)是Microsoft开发的一种可视化的、面向对象的编程语言,尤其适合初学者入门。这个“简易画图板程序”利用VB的强大功能,创建了一个用户友好的图形界面,允许用户...

Global site tag (gtag.js) - Google Analytics