




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java实现屏幕截图功能,课题背景,伴随着计算机互联网技术的高速发展,数字化的时代已经正式的走进了我们的学习、生活和工作中,也大幅度的改善和丰富了人们的文化生活,提高了人们的生活质量,互联网技术和数据库技术的完美结合给人们的生活带来了巨大且客观的影响。高效率工作已然成为社会主题,很多时候,截图软件可以帮助我们提高很多工作效率和生活节奏。,软件说明,该屏幕捕捉软件,能够得心应手地捕捉到需要的屏幕截图。捕捉图像方式灵活,主要可以捕捉整个屏幕、活动窗口、选定区域、固定区域等。图像的输出方式多样,包括文件、剪贴板、画图等。软件提供捕捉框线,可调整选定区域。软件提供图片预览功能,可在界面展示已捕捉图片,多张显示等功能 截图软件可以帮助我们截图,保存,复制等功能,完善生活和工作的需要,工作中需要图片粘贴,书写文档等。生活中我们可以通过截图软件分享图片和解决问题等。,软件主界面,截图主界面主要包括两部分:1.工具栏2.图片展示区工具栏主要提供:1.界面格调2.截图操作区界面格调主要包括:1.Java界面2.系统界面截图操作区主要包括:1.开始截取2.退出,软件主界面部分实现代码:,(一)界面格调的实现:JPanel jp=new JPanel();/放置两个单选按钮的面板 jp.add(java=new JRadioButton(JAVA界面); jp.add(system=new JRadioButton(系统界面,true); java.addActionListener(this); system.addActionListener(this); jp.setBorder(BorderFactory.createTitledBorder(界面格调);,软件主界面部分实现代码:,(二)截图操作区的实现:start=new JButton(开始截取); cancel=new JButton(退出); start.addActionListener(this); cancel.addActionListener(this); JPanel buttonJP=new JPanel(); buttonJP.add(start); buttonJP.add(cancel); buttonJP.setBorder(BorderFactory.createTitledBorder(截图操作区);,软件主界面部分实现代码:,(三)图片显示区的实现:private BufferedImage bi; private int width,height; private int startX,startY,endX,endY,tempX,tempY; private JFrame jf; private Rectangle select=new Rectangle(0,0,0,0);/表示选中的区域 private Cursor cs=new Cursor(Cursor.CROSSHAIR_CURSOR);/表示一般情况下的鼠标状态(十字线) private States current=States.DEFAULT;/ 表示当前的编辑状态 private Rectangle rec;/表示八个编辑点的区域 /下面四个常量,分别表示谁是被选中的那条线上的端点 public static final int START_X=1; public static final int START_Y=2; public static final int END_X=3; public static final int END_Y=4; private int currentX,currentY;/当前被选中的X和Y,只有这两个需要改变 private Point p=new Point();/当前鼠标移的地点 private boolean showTip=true;/是否显示提示.如果鼠标左键一按,则提示就不再显示了,软件主界面部分实现代码:,public Temp(JFrame jf,BufferedImage bi,int width,int height) this.jf=jf; this.bi=bi; this.width=width; this.height=height; this.addMouseListener(this); this.addMouseMotionListener(this); initRecs(); private void initRecs() rec=new Rectangle8; for(int i=0;irec.length;i+) reci=new Rectangle(); ,界面格调,系统界面,Java界面,光标移动读取值代码展示:,截取图片方法在光标上提醒public void paintComponent(Graphics g) 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); int x=startXendX?startX:endX; int y=startYendX?startX:endX)-5,y-5,10,10); rec3=new Rectangle(startXendX?startX:endX)-5,y1-5,10,10); rec4=new Rectangle(startXendX?startX:endX)-5,(startYendY?startY:endY)-5,10,10); rec5=new Rectangle(x1-5,(startYendY?startY:endY)-5,10,10); rec6=new Rectangle(x-5,(startYendY?startY:endY)-5,10,10); rec7=new Rectangle(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”等。,截图保存代码实现:,private void initPanel() save=new JButton(保存(S); copy=new JButton(复制到剪帖板(C); close=new JButton(关闭(X); save.setMnemonic(S); copy.setMnemonic(C); close.setMnemonic(X); JPanel buttonPanel=new JPanel(); buttonPanel.add(copy); buttonPanel.add(save); buttonPanel.add(close); JLabel icon=new JLabel(new ImageIcon(get); this.add(new JScrollPane(icon),BorderLayout.CENTER); this.add(buttonPanel,BorderLayout.SOUTH); save.addActionListener(this); copy.addActionListener(this); close.addActionListener(this); ,截图保存代码实现:,public void actionPerformed(ActionEvent e) Object source=e.getSource(); if(source=save) doSave(get); else if(source=copy) doCopy(get); else if(source=close) get=null; doClose(this); ,截图保存不同格式的图片:,if(ff instanceof JPGfilter) if(!ext.endsWith(.jpg) String ns=ext+.jpg; file=new File(ns); about=JPG; else if(ff instanceof PNGfilter) if(!ext.endsWith(.png) String ns=ext+.png; file=new File(ns); about=PNG; else if(ff instanceof BMPfilter) if(!ext.endsWith(.bmp) String ns=ext+.bmp; file=new File(ns); about=BMP; ,截图保存不同格式的图片:,else if(ff instanceof BMPfilter) if(!ext.endsWith(.bmp) String ns=ext+.bmp; file=new File(ns); about=BMP; else if(ff instanceof GIFfilter) if(!ext.endsWith(.gif) String ns=ext+.gif; file=new File(ns); about=GIF; if(ImageIO.write(get,about,file) JOptionPane.showMessageDialog(this,保存成功!); else JOptionPane.showMessageDialog(this,保存失败!); ,图片输出方式,复制到剪贴板,复制到剪切板代码实现:,if(get=null) JOptionPane.showMessageDialog(this ,图片不能为空!,错误,JOptionPane.ERROR_MESSAGE); return; / java.awt.datatransfer(接口) Transferable trans = new Transferable() / 内部类 public DataFlavor getTransferDataFlavors() return new DataFlavor DataFlavor.imageFlavor ; public boolean isDataFlavorSupported(DataFlavor flavor) return DataFlavor.imageFlavor.equals(flav
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新管理与组织变革-洞察阐释
- 乐理卷子试题及答案
- 胎盘黄疸与新生儿黄疸的遗传易感性研究-洞察阐释
- 业务合同执行状态跟踪统计表
- 线上线下游戏融合-洞察阐释
- 2025大学食堂餐饮承包合同
- 烟草种植现场调研与质量控制合同范本
- 保密项目参观保密协议书模板
- 车辆抵押贷款风险分析合同模板
- 柴油储备库建设与购销合作协议
- DBJ51 014-2021 四川省建筑地基基础检测技术规程
- PCB 设计技巧
- 消防施工测量记录(建筑分类)
- 八年级初二物理上册期末试卷及答案(人教版)
- 部编版六年级下册道德与法治知识点大汇总
- 汽车维修技术论文两篇
- 心理学基础试卷A
- 电动车使用维修指南
- 中国民航管理干部学院新生报名登记表
- 城市主干道工程监理大纲
- 《2021国标暖通图集资料》14K117-3 锥形风帽
评论
0/150
提交评论