`
mytream
  • 浏览: 73354 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

仿WindowsXP画图板设计(1)

阅读更多
一.功能介绍
     1.绘图功能:可以绘制直线,矩形,圆角矩形,椭圆
     2.颜色设置功能:可以设置画布的背景色以及所绘制图形的颜色
     3.文字输入和画笔功能:可以使用画笔绘制任意形状的曲线以及通过文字输入框在画板中加入简单的文字

     下面是画图板的界面效果图
     

     下面展示路绘制出来的直线,(实心)矩形,(实心)椭圆,(实心)圆角矩形和用画笔随意勾画的曲线
     

     通过对话框输入文字
     

     通过颜色选择按钮改变背景色
     


二.技术分析

     画图板设计过程设计到了swing组件的布局管理,组件事件监听器的添加,已绘制图形的保存,组件对美化和标题栏的设置等
    
     1.画图板界面分为三个部分:画布区域,颜色选择区域和图形选择区域。
这三个区域的组件被分别添加三个JPane对象中。主界面采用边界布局BorderLayout,画布区居中(CENTER),图形选择区在左侧(WEST),颜色选择区处在下方(SOUTH)。
    图形选择区中有18个组件,采用到是表格布局GridLayout,将单选按钮和图像标签放置在8行2列队表格面板中(JPanel)

    2.对画板中的画布添加了鼠标监听器(MouseListener)和鼠标移动监听器(MouseMotionListener),颜色选择按钮添加了动作监听器(ActionListener),菜单栏中的"退出"和"关于"菜单选项添加了动作监听器
   ActionListener从系统提供的颜色选择板上获得画布上下文(graphics context)的颜色
   MouseListener获取鼠标在画布上按下和释放时的位置,并在绘图区上绘制所选图形

     3.由于正在执行的代码是处在系统的缓冲区中,所以在绘图区上绘制的图形如果不及时保存,就会因为界面的刷新(如最小化,移出显示屏等)而丢失掉。解决的方法是每次在绘制完一个图形后,立刻将其保存到一个容器类对象中(笔者使用的是ArrayList),并重写绘图面板(DrawPane对象)刷新的方法,添加从容器队列中取出图形进行绘制的代码

     4.为JPanel对象设置边框(Border)之后可使各个区域之间层次感更强。图形选择按钮之后的提示标签由文字换成ImageIcon对象使得用户界面看起来更加友好

     5.标题栏的设置较为简单。还需要注意的是,在获得图形图片的URL地址时要准确放置图片的位置并在代码中写清相对位置

     下面是程序的代码框架,具体可在附件中下载:
    

三.问题总结

1.在取得绘图区的画布(graphics context图形上下文)时,必须是在主界面执行了setVisible(true)之后,因为这时才会生成画布,否则引用绘图区的画布进行操作时会抛出空指针异常。

2.绘图区仅仅是指绘图面板(DrawPanel 继承于 JPanel),所以系统调用的自动刷新的函数是要在DrawPanel类中重写。否则若在JFame界面中重写,刷新后会导致图形覆盖其他区域。

3.最后也是最主要的一点是,开发过程应是以螺旋渐进的方式进行。我在刚开始设计画图板的时候把目标定的很大,恨不得实现WindowsXP附件中画图板板的每一个功能,结果导致多个版本由于技术上的限制不得不中途而废。所以在已完成的功能上运用新的技术才是最为有效的方法。



分享到:
评论

相关推荐

    仿XP画图板

    【标题】"仿XP画图板"是一款基于JAVA编程语言开发的应用程序,旨在模拟Windows XP操作系统中的经典画图工具。这个项目是为那些希望学习或熟悉GUI(图形用户界面)编程和事件处理的初学者设计的,同时也为用户提供了...

    仿 XP 系统画图板

    使用JAVA来开发仿XP画图板,意味着该程序可以在任何安装了JAVA运行环境的平台上运行,体现了JAVA的“一次编写,到处运行”的特性。 2. **图形用户界面**(GUI):仿XP系统画图板的界面设计是其关键部分,开发者可能...

    仿XP系统 画图板

    Java是一种广泛使用的编程语言,因其跨平台性而被选中来开发这个仿XP画图板。Java的Swing或JavaFX库可以用来构建GUI(图形用户界面),提供丰富的组件和功能,用于创建这个应用程序的界面和交互逻辑。画图板部分则...

    仿XP系统画图板

    【仿XP系统画图板】是一款简易的图形编辑软件,设计灵感来源于经典的Windows XP系统自带的画图工具。它旨在为用户提供一个简单的图形绘制环境,让任何人都能轻松上手,进行基本的绘画创作或者简单的图像编辑操作。这...

    一个仿XP的画图板实现

    标题 "一个仿XP的画图板实现" 暗示我们即将探讨的是一个软件开发项目,这个项目的目标是创建一个类似微软Windows XP操作系统中的“画图”程序的复制品。这个程序可能包含了基本的绘图工具,如选择颜色、线条粗细、...

    XP仿VISTA美化包合集

    而对于那些仍在使用 Windows XP 的用户来说,XP仿VISTA美化包合集提供了一个将XP界面风格升级至接近Vista的机会。 #### 二、美化包的主要特点 **1. 文件夹美化** - 文件夹图标被重新设计,采用了与Vista相似的透明...

    Java版水果管理系统源码-HubuPaint:基于.net之仿Windows画板设计

    Java版水果管理系统源码 HubuPaint 基于.net之仿Windows画板...随着操作系统不断的更新换代,其自带的画图板界面及功能也在不断变化,例如XP、Vista、Win10,它们画图板的界面布局风格以及功能都有所不同,这表明尽管

    一款超强的图形系统——Delphi源码Delphi-source-VG7.23

    软件不仅能在目前主流操作系统,如Windows NT、XP上优化运行,而且还完美兼容Windows98。在编程语言方面,软件提供的接口不仅能够支持VB、VC、Delphi、FoxPro、PowerBuilder、C++Builder、 C#、VB.net、VC.net、IE...

    protues教程PDF

    - **操作系统支持**:支持Windows 98/Me/2000/XP等多个版本。 - **长期开发经验**:产品经过15年以上的持续开发和改进。 - **全球用户基础**:在全球35个国家拥有数千个用户。 - **技术支持**:提供直接来自开发者的...

Global site tag (gtag.js) - Google Analytics