java制作一个图形编辑系统

上传人:te****st 文档编号:3198984 上传时间:2017-07-31 格式:DOC 页数:17 大小:356KB
返回 下载 相关 举报
java制作一个图形编辑系统_第1页
第1页 / 共17页
java制作一个图形编辑系统_第2页
第2页 / 共17页
java制作一个图形编辑系统_第3页
第3页 / 共17页
java制作一个图形编辑系统_第4页
第4页 / 共17页
java制作一个图形编辑系统_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java制作一个图形编辑系统》由会员分享,可在线阅读,更多相关《java制作一个图形编辑系统(17页珍藏版)》请在金锄头文库上搜索。

1、java制作一个图形编辑系统中文摘要该程序是一个图形用户界面的JAVA图形编辑系统,由于需要丰富的用户界面组件,该图形编辑系统界面采用了Swing包, 该程序实现了图形编辑系统的基本功能:新建文件、打开文件、保存文件、退出编辑系统等文件功能,还有用铅笔随手画,画直线,矩形,椭圆, 圆等基本图形的绘画功能, 还可以在更多 图形菜单栏中选择绘画带填充的图形,该图形编辑器还带有文字输入功能(图形文字),可以选择字体类型(正常,粗体,斜体),在操作的时候可以选择线条的粗细和颜色,橡皮擦功能可以帮助修改绘制的图形文字。在设计的时候考虑到在执行不同的操作的时候鼠标的形状也会随着改变,比如:在用铅笔绘画的时

2、候鼠标的形状就显现是一只铅笔的样子,在用橡皮擦的时候鼠标就转换成一个黑的小填充园进行擦除,由于时间的关系最终没有实现对于图形编辑系统,用鼠标拖动, 删除图形是一个技术性的难点,以后会加 强学习,实现此功能。1一、题目内容及要求制作一个友好的图形用户界面,操作简单易行的图形编辑系统,其具体要求如下:(1)能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字)(2)支持画笔颜色、文字大小设置;(3)能将画面中的所有图形存储到文件中;(4)能从文件读取图形进行增补;(5)采用对话框获取图形文件名。(6)也可以思考一先如何利用鼠标选取图形,删除二、设计思路1、功能规划将主界面设置为当前Windows

3、风格的,然后在一个Container里设置菜单区域,常用功能区域,绘图区域和状态栏。菜单区域设置“ 文件” (新建,保存,打开,退出)用来对文件的不同操作,“更多形状”(画实心矩形,实心圆,实心椭圆)用来扩充绘画功能,“颜色”用来通过调用系统颜色面板选择线条颜色,“帮助”用来添加一些附加信息,画板,作者的介 绍等;2常用功能区域里面添加了铅笔,直线,矩形,椭圆,圆,橡皮擦,粗细,文字等常用功能按钮用来完成不同的操作,还安置了两个复选框(粗体,斜体)来设置图形式文字输入的状态。排在North 位置绘图区域用来实现操作的操作显示平台,排在Center位置状态栏主要用来纪录鼠标的坐标改变,放在Sou

4、th 位置2、工作原理图3开始初始化绘图区域新建或默认文件打开已有文件绘制和修改图形新建文件保存图片文件退出程序结束3、打开已保存的图形文件4开始选择文件格式是否正确否取消读取读取文件结束4、保存绘制的图形开始输入保存文件名保存图形取消保存结束5三、具体实现1、用户自定义类类名:Huaban作用:生成主界面继承的父类:JFrame主要的类成员:privateObjectInputStreaminput;privateObjectOutputStreamoutput;输入输出流,打开和保存图像privateJButtonchoices;存放功能按钮privateStringnames=存放功能按

5、钮的名字;privateStringtipText=鼠标放到功能按钮上的提示语privateIconitems;存放各功能按钮的IconIconwei=newImageIcon(wang.gif);/介绍我的Iconicon=newImageIcon(mm.gif);/说明的ICONIconicon1=newImageIcon(nn.gif);/输入文字的ICONJToolBarbuttonPanel;/定义功能按钮面板ButtonHandlerhandler=newButtonHandler(); 功能按钮监听1ButtonHandler1handler1=newButtonHandler1

6、();功能按钮监听2privateJLabelstatusBar;/ 显示鼠标状态的提示条privateDrawPaneldrawingArea;/画图区域drawingsitemList=newdrawings5000;/存放基本图形的大数组intindex=0;/ 当前已经绘制的图形数目,图形数组下标privateColorcolor=Color.black;/当前画笔颜色JCheckBoxbold,italic;/两个字体 选择复选框/开始构造函数Huaban()JMenuBarbar=newJMenuBar();/定义菜单显示barJMenufileMenu=newJMenu(文件(F

7、)/ 定义文件菜单JMenuItemnewItem=newJMenuItem(新建(N);JMenuItemsaveItem=newJMenuItem(保存(S);JMenuItemopenItem=newJMenuItem(打开(L);JMenuItemexitItem=newJMenuItem(退出(X);/ 文件菜 单项JMenushapeMenu=newJMenu(更多形状(P);/绘图菜单JMenuItemfrectItem=newJMenuItem(画实心矩形(F);JMenuItemfovalItem=newJMenuItem(画实心椭圆 (T);JMenuItemfcircle

8、Item=newJMenuItem(画实心圆(Q);/菜单项JMenucolorMenu=newJMenu(颜色 (C)/颜色菜单JMenuItemcolorItem=newJMenuItem(选择颜色(O);/菜单项JMenuhelpMenu=newJMenu(帮助(H)/帮助菜单6JMenuItemaboutItem=newJMenuItem(关于mini画板 !(A);JMenuItemhowItem=newJMenuItem(帮助主题(W);/帮助菜单项对于定义的一些菜单和菜单项通过bar.add(X)和X.add(Y)来添加到主界面中去的,并且同过函数setMnemonic()来设置

9、这些菜单或菜单项的快捷键,然后通过X.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)触发相 应方法事件 来实现对菜单项的事件出发。/创建各种基本图形的按钮,排列功能按钮面板buttonPanelitems=newImageIconnames.length;choices=newJButtonnames.length;buttonPanel=newJToolBar(JToolBar.VERTICAL);buttonPanel=newJToolBar(JToolBar.HORIZONTAL);

10、/导入图形图标,在功能按钮上加上Icon和提示语tipTextifor(inti=3;ichoices.length;i+)itemsi=newImageIcon(namesi+.gif);choicesi=newJButton(,itemsi);choicesi.setPreferredSize(newDimension(35,30);choicesi.setToolTipText(tipTexti);buttonPanel.add(choicesi);/添加按钮实体/添加对按钮的监听,基本监听者handler 注册for(inti=3;ichoices.length-2;i+)choice

11、si.addActionListener(handler);currentChoice=j;/对监听到 绘制函数中做相应调用 /触发弹出对话框监听者handler1注册choiceschoices.length-2.addActionListener(handler1);choiceschoices.length-1.addActionListener(handler1);/创建和添加字体选择复选框,鼠标状态提示条以及注册bold=newJCheckBox(粗体);italic=newJCheckBox(斜体字 );checkBoxHandlercHandler=newcheckBoxHand

12、ler();bold.addItemListener(cHandler);7italic.addItemListener(cHandler);事件注册buttonPanel.add(bold);buttonPanel.add(italic);statusBar=newJLabel();statusBar.setText(欢迎使用迷你画板1.00版_!);/设计JFrame 整体布局Containerc=getContentPane();super.setJMenuBar(bar);c.add(buttonPanel,BorderLayout.NORTH);c.add(drawingArea,B

13、orderLayout.CENTER);c.add(statusBar,BorderLayout.SOUTH);createNewItem();/创建基本 图形绘制区域,默认为Pencil绘画setSize(720,450);setVisible(true);/构造函数结束,类名:ButtonHandler作用:按钮监听器,监听基本的绘图操作继承的父类:ActionListenerpublicclassButtonHandlerimplementsActionListenerpublicvoidactionPerformed(ActionEvente)for(intj=1;jchoices.l

14、ength-2;j+)if(e.getSource()=choicesj)currentChoice=j;createNewItem();repaint();类名:ButtonHandler1作用:按钮监听器,监听改线条粗细和添加图形文字继承的父类:ActionListenerpublicclassButtonHandler1implementsActionListenerpublicvoidactionPerformed(ActionEvente)if(e.getSource()=choiceschoices.length-2)setStroke();if(e.getSource()=cho

15、iceschoices.length-1)JOptionPane.showMessageDialog(null,你可以点击 画板用来添加文字! ,8文字 输 入:,http:/RMATION_MESSAGE,icon1);currentChoice=9;createNewItem();repaint();类名:drawings作用:定义基本图形单元继承的父类:Serializable主要成员变量:intx1,y1,x2,y2;/坐标属性intR,G,B;floatbrush;/定 义线条粗细 属性inttype;/定义字体属性Strings1;Strings2;/定义 字体风格属性voiddraw(Graphics2Dg2d)类名:DrawPanel作用:画图面板,用来绘画继承的父类:JPanelclassDrawPanelextendsJPanelpublicDrawPanel()setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);setBackground(Color.white);addMouseListener(newmouseA();注册事件mouseA()addMouseMotionListener(ne

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 化学工业

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号