博客来源:

一个字,懒!这正是我前进的源泉…现在连操作电脑都想自动化了……

已经打好的包————> 点击下载,Rebot实现自动选中.jar 完全免费

已经打好的包————> 点击下载,Rebot实现自动选中.jar 完全免费

已经打好的包————> 点击下载,Rebot实现自动选中.jar 完全免费

话不多说 上源码,注释很全,可以抽取需要的

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;/*** @Method: 键盘按键检测,GUI界面,打开界面可见文本框,鼠标选中文本框,按下按键会出现相应的按键提示*/
public class KeyboardTest implements KeyListener , ActionListener , FocusListener {//设置总面板JFrame jFrame = new JFrame("bili下载助手");//设定一个文本框JTextField jTextField = new JTextField();//定义一个按钮,控制上下键JButton jButton = new JButton("向下选中");//设置初次不响应Boolean firstStart = true;//设置执行标识符Boolean isRun = false;public static void main(String[] args) {KeyboardTest keyboardTest = new KeyboardTest();keyboardTest.init();}private void init(){//自定义布局jFrame.setLayout(null);//设定布局大小jFrame.setSize(300,95);//将窗口的位置设置在正中间jFrame.setLocationRelativeTo(null);//设置背景颜色jFrame.setBackground(new Color( 96, 160, 246));//设置左上角图标ImageIcon imageIcon=new ImageIcon("C:\\KeyboardTest.png");jFrame.setIconImage(imageIcon.getImage());//设置不可改变大小jFrame.setResizable(false);//添加关闭监听jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//给文本框添加按键监听jTextField.addKeyListener(this);//设置文本框大小jTextField.setBounds(0,0,180,50);//设置文本框颜色jTextField.setBackground(new Color(206, 216, 243));//设置文本框样式jTextField.setFont(new Font("宋体",Font.PLAIN,22));//设置提示jTextField.addFocusListener(this);//设置背景jTextField.setForeground(Color.GRAY);//提示语jTextField.setText("回车执行");//将文本框添加入版面jFrame.add(jTextField);//设置按钮位置以及大小jButton.setBounds(180,0,110,50);//设置文本框颜色jButton.setBackground(new Color(98, 141, 255));//设置文本框样式jButton.setFont(new Font("宋体",Font.PLAIN,18));//添加监听jButton.addActionListener(this);//添加动作指令jButton.setActionCommand("down");//添加样式jButton.setFocusPainted(false);//将文本框添加入版面jFrame.add(jButton);//页面总是置顶jFrame.setAlwaysOnTop(true);jFrame.setVisible(true);}@Overridepublic void keyTyped(KeyEvent e) {if(!(e.getKeyChar()>='0'&&e.getKeyChar()<='9')){//输入的直接无视e.consume();}}@Overridepublic void keyPressed(KeyEvent e) {//如果是回车就执行操作if (e.getKeyText(e.getKeyCode()).equals("Enter")){new Thread(new Runnable() {@Overridepublic void run() {try {doRebot();} catch (Exception exception) {exception.printStackTrace();}}}).start();jTextField.setEditable(false);jTextField.setText("执行中……");jTextField.setForeground(Color.GRAY);jButton.setText("停止");jButton.setActionCommand("stop");jButton.setBackground(new Color(255, 70, 116));isRun = true;}if (jTextField.getText().equals("回车执行")){jTextField.setText("");jTextField.setForeground(Color.BLACK);}}public void doRebot() throws Exception {int num = Integer.parseInt(jTextField.getText().trim());//创建一个robot对象Robot robot = new Robot();int direction = 98;if (jButton.getActionCommand().equals("up")){direction = 104;}Thread.sleep(100);robot.keyPress(18);robot.delay(50);robot.keyPress(9);robot.delay(100);robot.keyRelease(9);robot.delay(50);robot.keyRelease(18);for (int i = 0; i < num; i++) {if (isRun){robot.delay(100);robot.keyPress(32);robot.delay(50);robot.keyRelease(32);robot.delay(100);robot.keyPress(direction);robot.delay(50);robot.keyRelease(direction);}else {break;}}jButton.setActionCommand("down");jButton.setText("向下选中");isRun = false;//设置文本框颜色jButton.setBackground(new Color(98, 141, 255));jTextField.setText("");jTextField.setForeground(Color.BLACK);jTextField.setEditable(true);}@Overridepublic void keyReleased(KeyEvent e) {}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("down")){jButton.setActionCommand("up");jButton.setText("向上选中");}else if (e.getActionCommand().equals("up")){jButton.setActionCommand("down");jButton.setText("向下选中");}else if (e.getActionCommand().equals("stop")){jButton.setActionCommand("down");jButton.setText("向下选中");isRun = false;//设置文本框颜色jButton.setBackground(new Color(98, 141, 255));jTextField.setText("");jTextField.setForeground(Color.BLACK);jTextField.setEditable(true);}}@Overridepublic void focusGained(FocusEvent e) {if (firstStart){firstStart = false;}else {//获取焦点时,清空提示内容String temp = jTextField.getText();if(temp.equals("回车执行")) {jTextField.setText("");jTextField.setForeground(Color.BLACK);}}}@Overridepublic void focusLost(FocusEvent e) {//失去焦点时,没有输入内容,显示提示内容String temp = jTextField.getText();if(temp.equals("")) {jTextField.setForeground(Color.GRAY);jTextField.setText("回车执行");}}
}

java模拟键盘操作,java自动化操作相关推荐

  1. java整理软件---java模拟键盘,鼠标操作

    1.Java 模拟键盘输入的小Demo,实现自动按下:模拟Ctrl+Alt+Z的按下和抬起    如果你开着qq的话,那么qq会自动弹出来.哈哈,代替人工操作; import java.awt.Rob ...

  2. selenium+Java模拟键盘操作

    selenium中的org.openqa.selenium.Keys类提供了键盘上几乎所有按键的方法. sendKeys()方法可以用来模拟键盘输入, 除此之 外, 我们还可以用它来输入键盘上的按键, ...

  3. java模拟而一个电话本操作

    哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po;/*** * 电话人的信息* */ public cl ...

  4. java制作电话本,java模拟而一个电话本操作

    哈哈.大家平时都在使用电话本.以下使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po; /** * * 电话人的信息 * */ public ...

  5. python selenium模拟键盘_Python+Selenium自动化篇-7-模拟键盘操作

    0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # 导入键盘类 Keys() from selenium. ...

  6. java 模拟键盘输入_Java 在windows 下模拟鼠标键盘的输入

    Java提供了一个很好的自动化测试类供我们去模拟鼠标键盘消息.以下是Robot的主要方法 Robot类的主要方法详细信息 1.mouseMove(int x,int y)将鼠标指针移动到给定屏幕坐标: ...

  7. 仿金山打字通游戏,模拟键盘(java swing),提示输入,导入本地txt文件

    一.设计思路 1.用一个主窗体,在主窗体上放置两个子窗体,一个是文本面板,一个是模拟键盘面板. 2.文本面板分两个子面板,一个是已有文本,一个是输入文本,在带输入文本面板上添加文件监听器,动态改变下一 ...

  8. java 获取键盘事件,java获取键盘事件

    本人认为,实现它其实最 简单的莫属一个类,Java 本身就提供的,这个类就是 Scanner.先举个例子如下: import java.util.Scanner; /** * 测试从键盘读取用户的.. ...

  9. java模拟考试系统,java模拟考试软件下载

    java模拟考试手机版是一款能够在线学习java并且练习的手机软件,涵盖了java语言的所有知识,由浅入深带领大家从最基本的java代码到最后的java项目,让大家对java语言不再害怕,都能够熟练的 ...

  10. Ubuntu16.04利用expect模拟键盘输入实现自动化交互

    在Linux的日常使用中,经常会有自动化交互的需要,如SSH,手动的操作繁琐.效率地下,使用expect工具可以模拟键盘输入,实现自动输入.自动交互. 1,安装  sudo apt install e ...

最新文章

  1. UIView的clipsTobounds属性
  2. JAVA大数_棋盘覆盖
  3. 树莓派debian配置lamp【解决apache不显示php】
  4. 7.1 XHTML的规范化
  5. 没有对应的Id ,报空指针异常
  6. org.apache.hadoop.hbase.TableNotDisabledException 解决方法
  7. [编程题] 被3整除
  8. 【工匠大道】博客园小技巧
  9. 台达编码器型号含义_台达伺服电机命名规则
  10. Linux 终端命令的末尾加上一个 符号的作用
  11. java基本语法(史上最全)
  12. 饿了么UI库--Vue开发必备神器--让你轻松设计出好看的页面
  13. 斯坦福李飞飞教授:人口普查不用上门,谷歌街景加深度学习就搞定
  14. 操作系统实验一:父子进程通信
  15. EasyDarwin流媒体云平台:EasyCamera开源摄像机接入海康威视摄像机实时视频
  16. net user administrator /passwordreq:yes 错误
  17. Android自定义控件 ---- 带下划线的TextView
  18. html纯白色代码,想用纯白的背景代码。
  19. 驳“法律信仰靠什么来生成?”
  20. 网络控制播放器(局域网内通过TCP和UDP控制视频播放器)

热门文章

  1. SQL 函数NULLIF、NULL、ISNULL、COALESCE、IIF
  2. XMLHttpRequest.responseType
  3. Windows服务程序
  4. python之路-基础篇-002
  5. CentOS网络问题汇总
  6. 含有Date类型的对象或集合转换成json时的问题
  7. Single Number leetcode java
  8. mybatis 3.2.3 maven dependency pom.xml 配置
  9. jquery 源码分析
  10. G1手机上的VOIP之旅 - SIP Server + SipDroid