`
Chang0501
  • 浏览: 23779 次
  • 性别: 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  
继续加油!

相关推荐

    C#开发的简单画图板

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

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

    用java实现的windows画图板的简单模式,对于java初学者的事件触发器学习有很好的帮助。。。

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

    用VB做的简单的画图板程序 主要注重不是功能是界面,功能实现不多。

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

    本软件是利用 VC++这个强大的可视化编程工具开发的,软件主要功能包括图 形的绘制、线型的设置、颜色的设置,图形... 本文介绍了如何完成上述功能,同时详细阐述了画图系统的实现过程以及对 画图系统所做的功能扩充。

    画图板设计 java设计源代码

    该程序是采用Netbeans IDE工具开发设计的,实现了画图板的几个基本功能。运用NetBeans所提供的控件,设计了画图板用户界面,完成画图板的基本框架。其中采用了java.awt包中的Panel...整个画图板的设计比较简单,便于操作

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

    简单的MFC画板,功能齐全,代码齐全,亲自编的,里面有程序代码,也有开发过程的每一步怎么操作都很清楚 简单的MFC画板,功能齐全,代码齐全,亲自编的,里面有程序代码,也有开发过程的每一步怎么操作都很清楚

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

    Paint Board简易画图板包括源程序、封面、任务书。是比较完整的一套,很值得大家借鉴

    openGL画图板实现简单画图功能

    用C++实现基于openGL的画图板,实现简单画图功能

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

    使用VB语言编写的简易画图板程序,界面美观、简洁,功能强大

    简易画图板程序java

    图形学基本内。可以画直线、圆,填充图形,移动图形等等。改进原来的内容。是课程设计的内容。希望有所帮助。用java写的

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

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

    java 课程设计 简单的画图板

    用java 写的简单的画图板程序 实现了文件的保存 打开 读取和一些基本图形的画法 比较简单

    画图板课程设计

    C++ MFC课程设计作业,是一个简单的画图板,优点是注释语句十分的多,最适合课程设计,可以画直线,矩形,园,可以填充颜色,画笔粗细

    基于C++的QT平台完成画图板设计制作

    本文的主要内容是描述画图板设计与实现项目里的重要技术手段以及相关辅助说明文档。这篇文章的最终目标是实现一个简易的画图工具供人们使用。这个画图板搭载的环境是著名的跨平台开发软件Qt,可以对本地照片进行涂鸦...

    vc++画图板(计算机图形学)

    vc++实现了简易画图板,计算机图形学课程设计。

    JAVA开发的画图板

    本程序完成的是一个类似于Windows画图板的画图程序,由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项: 1.新建 2.打开或保存 3.绘制一些基本的图形组件 4.用鼠标在绘图板上单击...

Global site tag (gtag.js) - Google Analytics