java画图板课程设计

  • 格式:doc
  • 大小:300.06 KB
  • 文档页数:35

下载文档原格式

  / 35
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机与信息工程系《JA V A程序设计》课程设计

画图板

专业计算机

班级计000001

学号00000

姓名0000

E-Mail

电话10000000032 时间2000006

承德石油高等专科学校

摘要:本程序通过调用JA V A提供的BorderLayout,Button,

Color;Container;Graphics;Panel;ButtonGroup;JFrame;JPanel;UIManager

等基本类进行了简单的界面设计,运用了JA V A中类的继承特性实现

了对父类方法的调用,并多次使用CASE语句实现绘图菜单的选择,运用了适配器类简化了监听器类的重写工作。

关键字:UIManager、ActionListener

1. 课程设计介绍

本程序完成的是一个类似于Windows画图板的绘图程序。由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项:

1.新建一个空白图形文件:用于绘制新的图形。

2.打开或保存一个图形文件,便于对图形文件的管理。

3.绘制一些基本的画图组件:直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。

4.可以用鼠标在绘图面板上单击拖动进行随笔画。

5.橡皮擦:可以将已绘制好的图形擦掉。

6.添加文字:可以在绘图区域内添加文字。

7.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Times New Roman、Serif、Monospaced、SonsSerif、Garamond。当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。大大方便和简化了程序设计。

8.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体、斜体,使用者有三种选择方式,包括:①同时选中两者、②只选择其中一种、③两者都不选中。

9.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。

10.设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不一样的。①当作用于绘制图形组件时,它的作用是改变画笔绘制线条的粗细;②当作用于文字时,它的作用是改变文字的大小。

2.系统设计

2.1 需求分析

用过微软Windows操作系统的人一定都对Windows自带的画图板非常的熟悉。同图像处理软件界的“大哥大”Photoshop比起来,它虽然不及Photoshop的功能强大、内容丰富,但是作为Windows一直以来都内带的附件程序,它具有小巧玲珑、简单实用等其它绘图软件所不具备的优点。同时它的风格也被许多其它绘图软件所效仿。

2.2 总体设计

本程序主体为一个文件:QingDrawPad.java。其中包括的程序段有:

①QingDrawPad():构造函数,用以初始化。

②chooseColor():选择当前绘图颜色程序段。

③setStroke():设置当前画笔粗细程序段。

④loadFile():调用图形文件程序段。

⑤newFile():新建一个图形文件程序段。

⑥saveFile():保存当前所绘制图形程序段。

⑦creatNewItem():新建一个基本图形单元程序段。

相应的内部类有:

①ButtonHandler:用来处理基本图形单元的按钮事件。

②ButtonHandler1:用来处理New、Open、Save三个操作按钮的按钮事件。

③DrawPanel:用来创建绘图区域的子类。

④MouseA:继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、进入和离开等。

⑤MouseB:继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动的相应事件操作。

此外,还继承了父类drawings的基本图形子类,如前所述,这里不再重复。

2.3系统功能设计

画板主要由以下几个部分组成:

1.主窗体的设计。主类(QingDrawPad)用来生成主界面,完成画图板的主要框架。主类由JFrame派生出来。主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用BorderLayout布局形式。

2.菜单栏和工具栏的设计。菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。其中①文件菜单栏包括文件的新建、打开、保存等选项;②颜色菜单栏可以进行颜色选择;③线条粗细菜单栏设置线条的粗细;④提示菜单栏给出提示信息。

工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。在主类中添加并对菜单栏和工具栏添加事件监听。

3.事件响应的处理。对菜单栏、工具栏和用鼠标画图的事件响应进行处理。

①菜单栏中文件的新建、打开和保存菜单事件的处理:Java把每个文件都视作顺序字节流。如果要在Java中进行文件处理,则必须用到Java.io包。这个包定义了一些流类,选用FileInputStream(从文件中读入数据)和FIleOutputStream(向文件输出数据),通过建立这些文件的对象便可以打开文件。这些流相应地从InputStream 和OutputStream派生,这些文件均使用文件流,所以必须将文件结构化以适应程序的要求。我们需要对保存的对象序列化,然后以输出流的方式保存。在程序中用newFile()、loadFile()和saveFile()三个函数分别实现文件的新建、打开和保存。

②工具栏事件的处理:主要有一些Button组成。我们用ButtonHandler 内部类处理基本单元事件,ButtonHandler1内部类处理新建、打开和保存文件按钮,在画图类DrawPanel中定义CreateNewItem()函数处理工具栏中的画图事件。

③鼠标画图:由于画图板主要是用来画图,所以需要在程序中添加对鼠标按下、拖动、进入、退出、移动和单机事件进行监听并进行处理。内部类mouseA定义了完成鼠标按下、松开、进入、退出事件响应。内部类mouseB完成鼠标拖动和移动事件响应。

4.画图的基本功能。在程序设计中用到了动态绑定,我们可以提取他们的公共属性,先建立一个父类,然后建立各个子类,继承父类中的方法并将父类中的draw 函数重写。一些关于图形形状的类,最主要是用于画图、字体和橡皮擦等基本类型。如Circle、Triangle、Rectangle,它们都是有超类(Object类)派生的。在面向对象编程中,每个类都有画出自己的能力,每个类都有自己的draw函数,但每种形状的draw函数都