java画板实验报告.docx
1二、JAVA画板的设计一、实验名称及其要求A、实验名称JAVA画板的设计B、实验要求1实验目的图形界面设计。熟悉JAVAAWT包中的组件,掌握图形界面设计方法,理解委托事件处理模型。2实验要求(1)设计图形界面添加菜单窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。(2)实现画板的基本功能。二、程序设计本程序完成的是一个类似于WINDOWS画图板的绘图程序。由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项1新建一个空白图形文件用于绘制新的图形。2打开或保存一个图形文件,便于对图形文件的管理。3绘制一些基本的画图组件直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。4可以用鼠标在绘图面板上单击拖动进行随笔画。5橡皮擦可以将已绘制好的图形擦掉。6添加文字可以在绘图区域内添加文字。7选择文字的字体通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、TIMESNEWROMAN、SERIF、MONOSPACED、SONSSERIF、GARAMOND。当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。大大方便和简化了程序设计。8选择文字的字体风格通过两个复选框按钮,可以选择需要的字体风格,包括粗体、斜体,使用者有三种选择方式,包括①同时选中两者、②只选择其中一种、③两者都不选中。9设置画笔的颜色可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。10设置画笔的粗细该选项在作用于基本图形组件和文字时,它的效果是不一样的。①当作用于绘制图形组件时,它的作用是改变画笔绘制线条的粗细;②当作用于文2字时,它的作用是改变文字的大小。由此可以看到,虽然我们的画图板程序不及那些专业的绘图程序,但是,“麻雀虽小,五脏俱全”,它已经具备了一个绘图软件所应该有的基本功能和操作。通过对本程序的分析,我们可以更加系统地学习和了解如何从整体上设计和实现一个程序。(一)程序基本组成框架和结构1一组基本图形按钮,包括PENCIL(随笔画)、LINE(直线)、RECT(矩形)、FRECT(实心矩形)、OVAL(椭圆)、FOVAL(实心椭圆)、CIRCLE(圆)、FCIRCLE(实心圆)、ROUNDRECT(圆角矩形)、FRRECT(实心圆角矩形)、RUBBER(橡皮擦)、WORD(文字)。这些基本图形都继承于同一个父类DRAWINGS。DRAWINGS具有变量(属性)INTX1,X2,Y1,Y2//用来存放相应图形元素的坐标INTR,G,B//用来存放图形色彩颜色信息FLOATSTROKE//用来存放画笔粗细INTTYPE//用来保存图形类型STRINGS1//用来保存输入文字字符串STRINGS2//用来保存字体类型字符串同时,DRAWING还具有方法VOIDDRAWGRAPHICS2DG2D{}DRAW方法中用到了JAVA绘图里面的GRAPHICS2D类,所有继承DRAWINGS类的图形子类都重写了此方法。这就是JAVA程序中类的继承的概念。它对于程序代码的重用是很重要的,将极大的方便和简略程序代码。2此外,程序中还包括一下三个基本操作按钮①新建(NEW)新建一个图形文件。②打开(OPEN)打开一个图形文件。③保存(SAVE)保存当前图形文件。3选择颜色和设置当前画笔粗细的按钮分别为颜色(COLOR)、线条粗细(STROKE)。4选择当前字体风格的选择框为粗体(BOLD)、斜体(ITALIC),用以设置当前字体的风格。35选择当前字体的下拉式复选框为STYLES。6菜单条及其组成①文件(FILE)菜单项,包括NEW(新建一个图形文件)、LOAD(打开一个图形文件)、SAVE(保存当前图形文件)、EXIT(退出程序)。②颜色(COLOR)菜单项用来设置当前颜色。③线条粗细(STROKE)菜单项用来设置当前画笔粗细。④帮助(HELP)菜单项有关的程序帮助提示。完成的程序界面效果如下图二)画图板相关操作1新建一个图形文件选择FILE→NEW菜单,则清除当前所绘制的图像,回到初始画面。2打开已有的文件选择FILE→LOAD菜单,则清除当前所绘制的图像,并弹出打开文件对话框要求选择要打开的文件。如下图43保存选择FILE→SAVE菜单,则弹出要求保存文件对话框。4绘制基本图形基本图形包括以下几种PENCIL随笔画,图标为。LINE直线,图标为。RECT矩形,图标为。FRECT实心矩形,图标为。OVAL椭圆,图标为。FOVAL实心椭圆,图标为。CIRCLE圆,图标为。FCIRCLE实心圆,图标为。ROUNDRECT圆角矩形,图标为。FRRECT实心圆角矩形,图标为。5RRUBBER橡皮擦,图标为。绘图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘图即可。5设置画笔大小单击工具栏上的图标,或单击STROKE→SETSTROKE菜单,则弹出相应的设置当前画笔粗细对话框。如下图6选择颜色单击工具栏区域,或单击COLOR→CHOOSECOLOR菜单,则弹出相应的选择当前画图颜色对话框。如下图1选择字体风格6在工具栏区域,可以选择相应的字体风格,有粗体、斜体和粗斜体三种可供选择。2选择字体在工具栏区域,可以选择字体,本程序中有如下几种字体可供选择宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、TIMENEWROMAN、SERIF、MONOSPACED、SONSSERIF、GARAMOND。三系统功能设计分析画板主要由以下几个部分组成1主窗体的设计。主类(DRAWPAD)用来生成主界面,完成画图板的主要框架。主类由JFRAME派生出来。主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用BORDERLAYOUT布局形式。2菜单栏和工具栏的设计。菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。其中①文件菜单栏包括文件的新建、打开、保存等选项;②颜色菜单栏可以进行颜色选择;③线条粗细菜单栏设置线条的粗细;④提示菜单栏给出提示信息。工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。在主类中添加并对菜单栏和工具栏添加事件监听。3事件响应的处理。对菜单栏、工具栏和用鼠标画图的事件响应进行处理。①菜单栏中文件的新建、打开和保存菜单事件的处理JAVA把每个文件都视作顺序字节流。如果要在JAVA中进行文件处理,则必须用到JAVAIO包。这个包定义了一些流类,选用FILESTREAM(从文件中读入数据)和FILEOUTPUTSTREAM(向文件输出数据),通过建立这些文件的对象便可以打开文件。这些流相应地从STREAM和OUTPUTSTREAM派生,这些文件均使用文件流,所以必须将文件结构化以适应程序的要求。我们需要对保存的对象序列化,然后以输出流的方式保存。在程序中用NEWFILE()、LOADFILE()和SAVEFILE()三个函数分别实现文件7的新建、打开和保存。②工具栏事件的处理主要有一些BUTTON组成。我们用BUTTONHANDLER内部类处理基本