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")) ;
  }

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

(0)

相关推荐

  • Java VisualVM监控远程JVM(详解)

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具. 这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况. 本地监控:只要打开某个JAVA程序就会自

  • java获取redis日志信息与动态监控信息的方法

    效果展示如下所示: 实时监控 redis环境信息和日志列表 Redis配置 在windows下安装的redis,在安装目录找到redis.windows.conf文件,修改以下字段(按实际情况设置): slowlog-log-slower-than 100 slowlog-max-len 1000000 slowlog-log-slower-than:是配置需要日志记录的命令执行时间,单位是微秒,也就是说配置为100,会记录命令执行时间为0.1ms以上的记录.如果设置为0,就会记录所有执行过的命

  • JAVA 文件监控 WatchService的示例方法

    概述 java1.7中 提供了WatchService来监控系统中文件的变化.该监控是基于操作系统的文件系统监控器,可以监控系统是所有文件的变化,这种监控是无需遍历.无需比较的,是一种基于信号收发的监控,因此效率一定是最高的:现在Java对其进行了包装,可以直接在Java程序中使用OS的文件系统监控器了. 使用场景 场景一:比如系统中的配置文件,一般都是系统启动的时候只加载一次,如果想修改配置文件,还须重启系统.如果系统想热加载一般都会定时轮询对比配置文件是否修改过,如果修改过重新加载. 场景二

  • Java实现监控多个线程状态的简单实例

    实例如下: import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.Executors; /** * 测试监控类 * * @author * */ public class WatchThread { /** * 测试函数 * * @throws InterruptedException */ public void testThre

  • Java线程池运行状态监控实现解析

    在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等. 如果你想监控某一个线程池的执行状态,线程池执行类 ThreadPoolExecutor 也给出了相关的 API, 能实时获取线程池的当前活动线程数.正在排队中的线程数.已经执行完成的线程数.总线程数等. 总线程数 = 排队线程数 + 活动线程数 + 执行完成的线程数. 线程池使用示例: private static ExecutorService es = new ThreadPoolExecutor(

  • Java使用WatchService监控文件内容变化的示例

    场景 系统实现中经常需要能够感知配置文件的变化,然后及时更新上下文. 实现方案 自己起一个单独线程,定时加载文件,实现较简单,但是无法保证能够实时捕捉文件变化,同时耗CPU 使用commons-io中的 FileAlterationObserver,思想和上面类似,对比前后文件列表的变化,触发对应事件 JDK 1.7提供的WatchService,利用底层文件系统提供的功能 使用 WatchService WatchService用来监控一个目录是否发生改变,但是可以通过 WatchEvent

  • Java实时监控日志文件并输出的方法详解

    前言 最近有一个银行数据漂白系统,要求操作人员在页面调用远端Linux服务器的shell,并将shell输出的信息保存到一个日志文件,前台页面要实时显示日志文件的内容.这个问题难点在于如何判断哪些数据是新增加的,通过查看JDK 的帮助文档, java.io.RandomAccessFile可以解决这个问题.为了模拟这个问题,编写LogSvr和 LogView类,LogSvr不断向mock.log日志文件写数据,而 LogView则实时输出日志变化部分的数据. 代码1:日志产生类 package

  • Java实现实时监控目录下文件变化的方法

    一.commons-io方法 1.使用Commons-io的monitor下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的 (1)可以监控文件夹的创建.删除和修改 (2)可以监控文件的创建.删除和修改 (3)采用的是观察者模式来实现的 (4)采用线程去定时去刷新检测文件的变化情况 2.引入commons-io包,需要2.0以上. <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <depend

  • 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() th

  • Java编程获取当前屏幕分辨率的方法示例

    本文实例讲述了Java编程获取当前屏幕分辨率的方法.分享给大家供大家参考,具体如下: /** * This class implements the functionality of fetching the size of the screen */ package com.leo.util; /** * @author Leo Share * @since 07/16/2007 * @version 1.0 */ class ScreenSize{ private int screenWid

  • C#实现简单屏幕监控的方法

    本文实例讲述了C#实现简单屏幕监控的方法.分享给大家供大家参考.具体如下: 这是一段C#编写的屏幕监控代码,可以自动对屏幕进行截图,软件自身隐藏 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.

  • Java编程实现轨迹压缩算法开放窗口实例代码

    轨迹压缩算法 场景描述 给定一个GPS数据记录文件,每条记录包含经度和维度两个坐标字段,根据距离阈值压缩记录,将过滤后的所有记录的经纬度坐标构成一条轨迹 算法描述 这种算法的用处还是相当广泛的. 轨迹压缩算法分为两大类,分别是无损压缩和有损压缩,无损压缩算法主要包括哈夫曼编码,有损压缩算法又分为批处理方式和在线数据压缩方式,其中批处理方式又包括DP(Douglas-Peucker)算法.TD-TR(Top-Down Time-Ratio)算法和Bellman算法,在线数据压缩方式又包括滑动窗口.

  • Java实现ZooKeeper的zNode监控

    上一篇文章已经完成了ZooKeeper的基本搭建和使用的介绍,现在开始用代码说话.参考 https://zookeeper.apache.org/doc/current/javaExample.html ,但对场景和代码都做了简化,只实现基本的Watcher功能. 1   场景设计 目的是体验ZooKeeper的Watcher功能.程序监控ZooKeeper的/watcher节点数据变化,当创建或修改数据时,控制台打印当前的数据内容和版本号:当/watcher被删除时,程序退出. /watche

  • java.nio.file.WatchService 实时监控文件变化的示例代码

    目录 1.示例代码 2.其实并没有实时 在平时的开发过程中,会有很多场景需要实时监听文件的变化,如下:1.通过实时监控 mysql 的 binlog 日志实现数据同步2.修改配置文件后,希望系统可以实时感知3.应用系统将日志写入文件中,日志监控系统可以实时抓取日志,分析日志内容并进行报警4.类似 ide 工具,可以实时感知管理的工程下的文件变更 在 Java 语言中,从 JDK7 开始,新增了java.nio.file.WatchService类,用来实时监控文件的变化. 1.示例代码 File

  • java获取鼠标在屏幕上坐标的方法

    介绍 java作为目前最为流行的计算机开发语言之一,学习java是高薪就业的好选择,本文介绍的这个小工具主要是使用MouseInfo类实时获取鼠标的信息,然后再JDialog上显示出来.希望下面的内容介绍,能够让大家对于如何获取鼠标在屏幕上的坐标更加了解,一起来学习下吧. 代码如下: import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JD

  • java图形化界面实现登录窗口

    登录窗口一般很常见,现在让我们自己也来写一个吧! PS:很多import是重复的,是因为我是分了几个类写的,必须单独导入 //模拟qq登录窗口 import java.awt.*; import java.io.*; import java.awt.event.*; import javax.swing.*; public class QQGUI extends JFrame implements ActionListener{ private JLabel userLa; private JL

  • Java 用Prometheus搭建实时监控系统过程详解

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下.系列主要分为以下几块 Prometheus各个概念介绍和搭建,如何抓取数据(本次分享内容)

  • 如何把Java程序窗口在屏幕中间显示

    举例说明: 1.有一个200*200像素的窗口,想要把它放在800*600像素的屏幕中间,屏幕的位置应是(800/2,600/2)=(400,300) 2.为了设置该窗口左上角的位置,以使窗口中心与屏幕中心相吻合,必须符合2个小条件(1)窗口的一半或100像素必须落在屏幕的中心的左边(2)窗口的一半或100像素必须落在屏幕的中心的上方,因此窗口左上角的位置必须定位于(400-100,300-100)=(300,200) 如下图所示: 但在实际程序运行的过程中,程序的运行环境显示屏幕的实际尺寸和像

随机推荐