java实现人工智能化屏幕监控窗口

 更新时间:2018年09月28日 11:48:10   作者:成兮  
这篇文章主要为大家详细介绍了java实现人工智能化屏幕监控窗口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现人工智能化屏幕监控窗口的具体代码,供大家参考,具体内容如下

具体代码实现(含注释)

public class Main{
  public static void main(String[] args) throws Exception{
    /* test code */
  }

  /**
  *用于实时监控屏幕的窗口
  *@author chengxi
  *@param void 
  *@return void 
  */
  public static void mvcontroll() throws Exception{

    /* 建立一个监控屏幕的窗口 */
    JFrame frame = new JFrame("人工智能化屏幕监控系统") ;
    frame.setSize(600,600) ;
    frame.setVisible(true) ;
    /* 设置总是显示在顶部 */
    frame.setAlwaysOnTop(true) ;
    /* 获取默认的工具包 */
    Toolkit tk = Toolkit.getDefaultToolkit() ;
    /* 使用工具包获取屏幕的大小,这是创建工具包的唯一作用 */
    Dimension dm = tk.getScreenSize() ;
    /* 创建图像的显示区域 */
    JLabel imageLabel = new JLabel() ;
    frame.add(imageLabel) ;
    /* 创建一个机器人 */
    Robot robot = new Robot() ;
    /* 持续监控屏幕 */
    while(true) {
      /* 创建用于显示屏幕分享部分的区域,填入x/y/width/height
      Rectangle rec = new Rectangle(frame.getWidth() , 0 , (int)dm.getWidth() - frame.getWidth() , (int)dm.getHeight()) ;
      /* 根据屏幕分享的当前分享图像创建一个图像对象 */
      BufferedImage bufimg = robot.createScreenCapture(rec)) ;
      /* 实时显示在图像显示区域中 */
      imageLabel.setIcon(new ImageIcon(bufimg)) ;
    }
  }

  /**
  *打开指定的路径
  public static void midopenQQ(String path) throws Exception{
    Desktop desktop = Desktop.getDesktop() ;
    /* 打开指定的uri所指定的应用程序 */
    desktop.open(new File(path)) ;
    /* 创建一个机器人 */
    Robot robot = new Robot() ;
    /* 因为创建机器人需要时间,因此在后续操作之前需要进行延迟加载 */
    robot.delay(2000) ;
    /* 使用robot的mouseMove方法将鼠标的光标移动到指定的位置上,这里我设置的是QQ界面的登录按钮上面 */
    robot.mouseMove(709,519) ;
    /* 定义鼠标事件:按下 */
    robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) ;
    /* 定义鼠标事件:放开 */
    robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) ;
    /* 事件的延迟 */
    robot.delay(300) ;
  }

  /**
  *简单的打开path指定的路径所在的应用程序
  *@author chengxi
  *@param String path
  *@return void
  */
  public static void easyopenQQ(String path) throws Exception{
    Desktop desktop = Desktop.getDesktop() ;
    /* 打开指定的文件 */
    desktop.open(new File(path)) ;
  }

  /**
  *打开uri指定的网址
  *@author chengxi
  *@param String uri
  *@return void
  */
  public static void openBrowse(String uri) throws Exception{
    /* 允许java程序使用在桌面上注册了的所有应用程序 */
    Desktop desktop = Desktop.getDesktop() ;
    /* 使用默认的浏览器打开指定uri */
    desktop.browse(new URI("http://www.baidu.com")) ;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Redisson RedLock红锁加锁实现过程及原理

    Redisson RedLock红锁加锁实现过程及原理

    本文主要介绍了Redis中Redisson红锁(Redlock)使用原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Java中文件操作功能小结

    Java中文件操作功能小结

    这篇文章主要为大家整理了一些Java中文件操作功能的相关资料,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-05-05
  • Spring+SpringMVC配置事务管理无效原因及解决办法详解

    Spring+SpringMVC配置事务管理无效原因及解决办法详解

    这篇文章主要介绍了Spring+SpringMVC配置事务管理无效原因及解决办法详解,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • SpringBoot 如何实时刷新静态文件

    SpringBoot 如何实时刷新静态文件

    这篇文章主要介绍了SpringBoot如何实时刷新静态文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 一文详解JDK21中虚拟线程

    一文详解JDK21中虚拟线程

    虚拟线程是JDK19中引入的,JDK21正式发布,本文主要介绍了JDK21中虚拟线程,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • springboot配置文件中使用${}注入值的两种方式小结

    springboot配置文件中使用${}注入值的两种方式小结

    这篇文章主要介绍了springboot配置文件中使用${}注入值的两种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java调用webService接口的代码实现

    java调用webService接口的代码实现

    本文主要介绍了java调用webService接口的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 超全面的SpringBoot面试题含答案

    超全面的SpringBoot面试题含答案

    这篇文章主要收录了44道面试中经常被问的SpringBoot问题,不管你是正在求职的新手还是已经工作很久的高手,这篇关于SpringBoot的面试题总结一定会让你有新的理解,让我们一起来看看吧
    2023-03-03
  • Java中HashMap和TreeMap的区别深入理解

    Java中HashMap和TreeMap的区别深入理解

    首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value
    2012-12-12
  • Java设计模式中的工厂模式详解

    Java设计模式中的工厂模式详解

    这篇文章主要介绍了Java设计模式中的工厂模式详解,工厂方法模式(Factory Method Pattern):创新型模式之一,简称工厂模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,需要的朋友可以参考下
    2023-09-09

最新评论