毕业论文答辩-java实现屏幕截图功能.ppt_第1页
毕业论文答辩-java实现屏幕截图功能.ppt_第2页
毕业论文答辩-java实现屏幕截图功能.ppt_第3页
毕业论文答辩-java实现屏幕截图功能.ppt_第4页
毕业论文答辩-java实现屏幕截图功能.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java实现屏幕截图功能,姓名:张淼龙班级:软件1017班指导老师:,课题背景,伴随着计算机互联网技术的高速发展,数字化的时代已经正式的走进了我们的学习、生活和工作中,也大幅度的改善和丰富了人们的文化生活,提高了人们的生活质量,互联网技术和数据库技术的完美结合给人们的生活带来了巨大且客观的影响。高效率工作已然成为社会主题,很多时候,截图软件可以帮助我们提高很多工作效率和生活节奏。,软件说明,该屏幕捕捉软件,能够得心应手地捕捉到需要的屏幕截图。捕捉图像方式灵活,主要可以捕捉整个屏幕、活动窗口、选定区域、固定区域等。图像的输出方式多样,包括文件、剪贴板、画图等。软件提供捕捉框线,可调整选定区域。软件提供图片预览功能,可在界面展示已捕捉图片,多张显示等功能截图软件可以帮助我们截图,保存,复制等功能,完善生活和工作的需要,工作中需要图片粘贴,书写文档等。生活中我们可以通过截图软件分享图片和解决问题等。,软件主界面,截图主界面主要包括两部分:1.工具栏2.图片展示区工具栏主要提供:1.界面格调2.截图操作区界面格调主要包括:1.Java界面2.系统界面截图操作区主要包括:1.开始截取2.退出,软件主界面部分实现代码:,(一)界面格调的实现:JPaneljp=newJPanel();/放置两个单选按钮的面板jp.add(java=newJRadioButton(JAVA界面);jp.add(system=newJRadioButton(系统界面,true);java.addActionListener(this);system.addActionListener(this);jp.setBorder(BorderFactory.createTitledBorder(界面格调);,软件主界面部分实现代码:,(二)截图操作区的实现:start=newJButton(开始截取);cancel=newJButton(退出);start.addActionListener(this);cancel.addActionListener(this);JPanelbuttonJP=newJPanel();buttonJP.add(start);buttonJP.add(cancel);buttonJP.setBorder(BorderFactory.createTitledBorder(截图操作区);,软件主界面部分实现代码:,(三)图片显示区的实现:privateBufferedImagebi;privateintwidth,height;privateintstartX,startY,endX,endY,tempX,tempY;privateJFramejf;privateRectangleselect=newRectangle(0,0,0,0);/表示选中的区域privateCursorcs=newCursor(Cursor.CROSSHAIR_CURSOR);/表示一般情况下的鼠标状态(十字线)privateStatescurrent=States.DEFAULT;/表示当前的编辑状态privateRectanglerec;/表示八个编辑点的区域/下面四个常量,分别表示谁是被选中的那条线上的端点publicstaticfinalintSTART_X=1;publicstaticfinalintSTART_Y=2;publicstaticfinalintEND_X=3;publicstaticfinalintEND_Y=4;privateintcurrentX,currentY;/当前被选中的X和Y,只有这两个需要改变privatePointp=newPoint();/当前鼠标移的地点privatebooleanshowTip=true;/是否显示提示.如果鼠标左键一按,则提示就不再显示了,软件主界面部分实现代码:,publicTemp(JFramejf,BufferedImagebi,intwidth,intheight)this.jf=jf;this.bi=bi;this.width=width;this.height=height;this.addMouseListener(this);this.addMouseMotionListener(this);initRecs();privatevoidinitRecs()rec=newRectangle8;for(inti=0;irec.length;i+)reci=newRectangle();,界面格调,系统界面,Java界面,光标移动读取值代码展示:,截取图片方法在光标上提醒publicvoidpaintComponent(Graphicsg)g.drawImage(bi,0,0,width,height,this);g.setColor(Color.RED);g.drawLine(startX,startY,endX,startY);g.drawLine(startX,endY,endX,endY);g.drawLine(startX,startY,startX,endY);g.drawLine(endX,startY,endX,endY);intx=startXendX?startX:endX)-5,y1-5,10,10);rec4=newRectangle(startXendX?startX:endX)-5,(startYendY?startY:endY)-5,10,10);rec5=newRectangle(x1-5,(startYendY?startY:endY)-5,10,10);rec6=newRectangle(x-5,(startYendY?startY:endY)-5,10,10);rec7=newRectangle(x-5,y1-5,10,10);if(showTip)g.setColor(Color.CYAN);g.fillRect(p.x,p.y,230,20);g.setColor(Color.RED);g.drawRect(p.x,p.y,230,20);g.setColor(Color.BLACK);g.drawString(请按住鼠标左键不放选择截图区后双击截图,p.x,p.y+15);,截图操作,点击开始截取按钮后,进入图片截取界面,截取之后可多张预览,显示如图所示,“图片1”,“图片2”,“图片3”等。,截图保存代码实现:,privatevoidinitPanel()save=newJButton(保存(S);copy=newJButton(复制到剪帖板(C);close=newJButton(关闭(X);save.setMnemonic(S);copy.setMnemonic(C);close.setMnemonic(X);JPanelbuttonPanel=newJPanel();buttonPanel.add(copy);buttonPanel.add(save);buttonPanel.add(close);JLabelicon=newJLabel(newImageIcon(get);this.add(newJScrollPane(icon),BorderLayout.CENTER);this.add(buttonPanel,BorderLayout.SOUTH);save.addActionListener(this);copy.addActionListener(this);close.addActionListener(this);,截图保存代码实现:,publicvoidactionPerformed(ActionEvente)Objectsource=e.getSource();if(source=save)doSave(get);elseif(source=copy)doCopy(get);elseif(source=close)get=null;doClose(this);,截图保存不同格式的图片:,if(ffinstanceofJPGfilter)if(!ext.endsWith(.jpg)Stringns=ext+.jpg;file=newFile(ns);about=JPG;elseif(ffinstanceofPNGfilter)if(!ext.endsWith(.png)Stringns=ext+.png;file=newFile(ns);about=PNG;elseif(ffinstanceofBMPfilter)if(!ext.endsWith(.bmp)Stringns=ext+.bmp;file=newFile(ns);about=BMP;,截图保存不同格式的图片:,elseif(ffinstanceofBMPfilter)if(!ext.endsWith(.bmp)Stringns=ext+.bmp;file=newFile(ns);about=BMP;elseif(ffinstanceofGIFfilter)if(!ext.endsWith(.gif)Stringns=ext+.gif;file=newFile(ns);about=GIF;if(ImageIO.write(get,about,file)JOptionPane.showMessageDialog(this,保存成功!);elseJOptionPane.showMessageDialog(this,保存失败!);,图片输出方式,复制到剪贴板,复制到剪切板代码实现:,if(get=null)JOptionPane.showMessageDialog(this,图片不能为空!,错误,JOptionPane.ERROR_MESSAGE);return;/java.awt.datatransfer(接口)Transferabletrans=newTransferable()/内部类publicDataFlavorgetTransferDataFlavors()returnnewDataFlavorDataFlavor.imageFlavor;publicbooleanisDataFlavorSupported(DataFlavorflavor)returnDataFlavor.imageFlavor.equals(flavor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论