中南大学JAVA课程设计报告

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

中南大学

JAVA课程设计报告题目:简单图形实现

目录

设计分析 ................................................3~4 程序结构 .. (4)

功能及说明..............................................5~11 操作方法 ..............................................11~12 实验结果 ..............................................12~13

一、设计分析

1、项目要求

实现各种二维图形的基本操作,要求采用图形用户界面

(1)实现圆、矩形、三角形的创建及参数修改

(2)实现各种图形的绘制

(3)求各种图形的面积和周长

(4)实现同一类型图形的大小比较

(5)实现同一类型的形状比较

2、实现分析

首先项目要求采用图形用户界面,当然首先要创建出一个界面JFrame出来。在这个界面中,首先做一个总体的布局:本次试验简单的采用流式布局,当然我们希望画图的时候有一个特定的区域,以便我们能够控制边界,采用一个JPanel,将这个JPanel添加到JFrame中,我们在面板中画各种图形。当然我们还要有一些按钮,来标明形状和颜色。因此,我们的整个界面分为两大部分,上面为形状颜色按钮,下面为画图板。

JAVA中自带有画出各种图形的函数,只需要我们获取一个画笔,然后利用这个画笔来调用各种方法即可。但是我们怎么控制利用我们的鼠标来画图呢,及在这里,鼠标就相当于一支笔。当然是利用监听器。在这个程序中,我们要用到三种监听器,ActionListener、MouseListener、MouseMotionListener。前面我们讲到我们的窗体中上一层是按钮,而这些按钮就要用到ActionListener监听器,后面两个监听器主要是在画图的过程中用到。

我们再来看看我们的这个画图板要实现的功能。

首先,要能画出各种图形,包括矩形,圆形,三角形,直线,曲线,当然还可以有其他的一些图形,在这里只列出一些有代表性的图形;

其次,要能改变图形的颜色,当然,JAVA中的颜色有多种,在这里也只列出一些有代表性的颜色,比如黑色,红色,蓝色,绿色,黄色。在JAVA中画图有两种方式,一种直接画线条,里面还是背景色,还有一种就是用填充的方式来画图。这两种方式在JAVA中都有自带的方法,只需要我们去调用就可以了。

然后,要能知道画出的图形是什么图形,以及画出图形的面积大小。这就需要在界面中添加两个文本框来显示形状和面积。在这里,要注意的是这个面积是根据鼠标移动的位置来计算的,算出的单位是像素。

最后,要有个橡皮擦按钮,只要一点击这个按钮,鼠标就像一块橡皮一样,可以擦掉画出来的图形。

到此,我们已经分析的本次试验的大体结构以及要实现的目标功能。我们现

在应该要对本次实验有一个清晰的认识,通过上面的分析,我们知道,本次试验只需要一个窗体JFrame、一个面板JPanel、三个监听器以及若干按钮就可以实现。

二、程序结构

三、功能及说明

在本次实验中,总共设计了三个类,每个类都有特定的作用,下面就意义介绍着三个类。

DrawSe.java

Mouse.java

Shape.java

(1)、DrawSe.java

首先我们开始这个项目的第一步是从界面开始的,创建一个界面比较简单,就是那么几个语句。在DrawSe.java这个类的设计中,除了主方法,只有两个方法,其中一个就是将那个界面展示在我们面前,还有一个就是要实现重绘的功能。熟悉了整个类的功能后我们来分解这个类,让我们来看看这些功能具体是怎么实现出来的。

首先在publicvoid showDS()这个方法中,主要功能是要将那个界面展

这些语句是固定的,每个界面用到的可能也就是这些,这些语句的作用分别是:设置标题、设置大小、设置关闭方法、设置居中、设置流式布局、使之可见。此时一运行程序就会产生出一个JFrame窗体。在我们前面的分析中,在这个窗体中应该有一些按钮、文本框、JPanel等,因此,下面我们就来一步步添加这些组件。在这里,我们要注意的一点就是所有组件的添加要放在setVisable()之前,这样才能让添加的组件可见。

我们的形状按钮中,我们将它设置成一个个小的图片,要添加图片我们可以用到ImageIcon ,首先利用下面语句创建出这些ImageIcon对象。

创建好这些对象后,使用下面的语句创建按钮对象,并将这些图片添加到按钮中。其中jb11.setActionCommand("橡皮擦.PNG")语句的作用是设置点击该按钮是应该获取的信息,即当点击这个按钮时就会返回"橡皮擦.PNG"这个字符串。

然后添加颜色按钮,这和添加形状按钮类似,只是颜色安妮中什么都不要放,只要设置一下按钮的背景颜色就可以了,也不要重新设置点击按钮时的监听信息。这样,颜色按钮就可以和形状按钮区分开来,点击按钮,当返回一个字符串时,就是形状按钮,当返回一个空字符串就是颜色按钮。

接下来添加文本框用来显示信息。

这个方法的最后一部分就是将这些按钮添加监听器,添加监听器的方法是先

拿到监听器的对象,然后利用jb1.addActionListener(mouse)这个语句来添加监听器。由于监听是一个接口,因此我们不能直接new出监听器接口的对象,必须要先用一个子类来实现监听器接口,new出子类的对象,在这个语句中mouse 就是一个实现了ActionListener接口的类的对象。

在这个类中还有一个重绘的方法publicvoid paint(Graphics g),这个方法是JPanel 中的,在这里重写这个方法,在程序运行的时候,程序会自

动调用这个方法。这个方法的作用是在我们移动后拉伸窗体的时候,我们画出的图形还是在那里不变。

(2)、Mouse.java

前面我们也说了,监听器是一个接口,不能直接实例化,我们要先用一个子类来实现这个接口,因此,这个类的主要作用就是实现监听器接口。

这个类共实现了以下三个监听器

MouseListener,ActionListener,MouseMotionListener

实现接口的时候就要重写接口中的抽象方法。

首先我们看看按钮添加的动作监听器,我们要点击按钮,要获取一个返回值,根据这个返回值来做出不同的反应。比如当我们点击矩形按钮时,我们的画笔就要能够画出一个矩形来,如果我们还点了红色按钮,那么,我们的画笔就要能画出一个红色矩形来。那么,怎么才能实现这些功能呢,这就是监听器中的抽象方法要做的事。

动作监听器中比较简单,只需要获取按钮中的信心,如果是一个字符串,就不要管,留给另外两个监听器去处理。当返回一个空字符串时,就是动作监听器要处理的事了。返回空字符串表示点击的是颜色按钮,要将画笔的颜色设置为该

相关文档
最新文档