目录
- 面向对象程序设计 (Java)学年课程报告
- 一 、 需求分析
- 二 、详细设计 (类图)
- 1 设计分析
- 2 程序系统结构分析图
- 3.程序结构流程图
- 4.结构流程图
- 三、交互界面设计
- 四、程序操作方法和效果
面向对象程序设计 (Java)学年课程报告
链接: Java画板GUI课程设计源代码及实验报告链接
一 、 需求分析
程序由一个主窗口构成,主窗口中主要显示一个绘制区域, 用
户的所有绘制操作都在绘制区域中完成;在窗口内或者窗口外可以通 过创建菜单、创建子面板等方式为用户提供画板相关功能的选择按钮、 设置项或者菜单选项;或者使用命令行给用户提供选择绘制图形、设
置颜色等功能的选项 ,但绘制操作还需要在窗口中完成;
该画板中可以绘制的图形包括圆形 (含椭圆) 、矩形 (含正方 形) 、直线和点,每个图形都需要保存位置、大小几何属性及是否填 充 、填充颜色 、是否绘制边框和边框颜色等必要属性,用户通过选择 按钮或者菜单项选中要绘制的图形,并且设置边框 、填充属性,然后 在绘制区域中通过鼠标拖放的方式创建图形;
所有图形按照创建顺序和属性值绘制在绘制区域中,位置出
现重叠的图形后绘制的要覆盖先绘制图形区域的内容;
形大小可不需要修改 ( 如可实现图形大小的修改, 则有额外加分) ; 可以通过菜单或者按钮选择的方式, 设置所有绘制图形的面积和周
长显示/ 不显示在图形中心位置, 文字颜色选择和填充颜色要 具有对比性;
二 、详细设计 (类图)
1 设计分析
为 了实现绘制矩形 、 圆形 、椭圆 、 多边形 、直线 、等基本图形,在此程序中定义
几种图形类, 实现编写的一 个重绘接 口。
2.在用户界面 GUI 类中, 继承了JFrame 类, 添加各种按钮 、 两个面板, 分别用 来画图和存放按钮组件,界面采用流式布局,为组件添加编写好的事件监听机制。
3. 在事件监听 DrawListener 类中 实现 了 MouseListener MouseMotionListener 、 ActionListener 监听接 口, 并重写其绘图方法。
4.在事件监听类中, 定义一 个字符串 str 用来储存按钮按下时上面的内容,如果 无文字, 则判断为颜色按钮 ,把画笔颜色 color 设置为按钮颜色; 有文字的话根 据按钮文字的不同, 去调用不同的图形类方法, 并在绘制图形后保存在集合中。 5.在界面 GUI 类中调用 DrawListener 类, 新建 draw 引 用, 为每个按钮添加该事 件引用并调用ArrayList 集合类, 遍历所绘制的图形类, 进行重绘。
2 程序系统结构分析图
3.程序结构流程图
4.结构流程图
三、交互界面设计
分别构造不同的图形类: 直线类(reline)、实矩形类(refilljuxing)、曲线类(requxian)、 射线类(reshexian) 、 矩形类(rejuxing) 、 折线类(rezhexian) 、椭圆类(retuoyuan) 、 实椭圆类(refilltuoyuan)。
每个图形类都实现 NetJavaShape 接口中的 redraw()方法,每个方法中根据形状 选择不同的绘制方法函数。
每个类可以在事件监听类中新建不同的对象引用,根据按钮选择不同可以调 用不同的图形类画法。
部分代码
举例绘制圆
class reyuanxian implements NetJavaShape { //实现重绘圆形图形
Graphics g ;
int x, y, x1, y1, x2, y2 ;
Color color ;
public reyuanxian(Graphics g, int x1, int y1, int x2, int y2, Color color) {
this.g = g ;
this.x1 = x1 ;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.color = color;
}
@Override
public void redraw() { //实现接口
方法进行曲线绘制
g.setColor(color);
double
r=(Math.pow(Math.pow((x1-x2),2.0)+Math.pow((y1-y2),2.0),0.5));
double n=Math.abs(Math.pow(r,2)*Math.PI);
String str = "x=" + x1+ " y=" + y1+" area="+(int)n;
g.drawString(str,x1,y1);
g.drawOval(x1,y1,(int)r,(int)r);
}
}
四、程序操作方法和效果
1.在GUI主程序中运行代码
2. 先点击要绘制图形的颜色
3. 点击蓝色,
4. 点击要画的图片的按钮,在左边空白区域拖拽即可
5. 左上角会显示图形的基本信息坐标,面积,长度等
6. 更换颜色,点击不同的颜色按钮,重复上述操作
7. 使用橡皮擦,点击橡皮擦,在左边用鼠标长按划过需要清除的部分
8. 擦除面板,点击擦除面板按钮,再点击左边面板区域,清空面板