`
xsong512
  • 浏览: 35277 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中实现鼠标模拟与键盘映射

阅读更多
关键字: java 鼠标模拟 键盘映射
Java SDK 1.3以后实现了Robot类。此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove 将实际移动鼠标光标,而不是只生成鼠标移动事件。
Robot中主要的鼠标和键盘控制方法有:
• void keyPress(int keycode) 按下给定的键。
• void keyRelease(int keycode) 释放给定的键。
• void mouseMove(int x, int y) 将鼠标指针移动到给定屏幕坐标。
• void mousePress(int buttons) 按下一个或多个鼠标按钮。
• void mouseRelease(int buttons) 释放一个或多个鼠标按钮。
• void mouseWheel(int wheelAmt) 在配有滚轮的鼠标上旋转滚轮。
下面就让我们来实战鼠标控制,实现一个简单的鼠标控制程序MouseController。程序功能很简单:随机移动鼠标并点击左键
package robot;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.util.Random;

public class MourseControl  implements Runnable{
	private Dimension dim;
	private Random rand;
	private Robot robot; 
	
	private volatile boolean stop = false;
    public MourseControl()
    {
    	//
    	dim = Toolkit.getDefaultToolkit().getScreenSize();
    	rand = new Random();
    	try {
			robot = new Robot();
		} catch (AWTException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        MourseControl m = new MourseControl();
        Thread t =  new Thread(m);
        t.start();
        System.out.println("MourseControl start...");
        try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        m.stop();
        System.out.println("MourseControl stop...");
	}
	public void run() {
		// TODO Auto-generated method stub
		while(!stop)
		{
			int x = rand.nextInt(dim.width);
			int y = rand.nextInt(dim.height);
			
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			robot.mouseMove(x, y);
			System.out.println("move to :x="+x+",y="+y);
			robot.mousePress(InputEvent.BUTTON1_MASK);
		}
		
	}
	public synchronized void stop()
	{
		stop = true;
	}

}



当然键盘映射也类似,无非是使用void keyPress(int keycode)。
分享到:
评论

相关推荐

    Java实现鼠标模拟与键盘映射

    在 Java 中实现鼠标模拟与键盘映射是通过使用 Robot 类来实现的。Robot 类是 Java SDK 1.3 及更高版本中引入的,用于生成本机系统输入事件,以便于自动测试、自运行演示程序和其他需要控制鼠标和键盘的应用程序。 ...

    java 控制鼠标*键盘的 jna 库32位

    在Java中,直接控制硬件设备如鼠标和键盘通常需要借助于特定的库。在这个场景下,"java 控制鼠标*键盘的 jna 库32位" 提供了这样的功能,通过Java Native Access (JNA) 库来实现。 JNA 是一个Java库,允许Java代码...

    键盘模拟鼠标滚轮滚动

    标题“键盘模拟鼠标滚轮滚动”所描述的是一款软件应用,它的主要功能是让用户通过键盘来模拟鼠标的滚轮操作,实现页面或文档的上下滚动。这种工具特别适合那些滚轮损坏或者不方便使用鼠标滚轮的用户,可以提高他们在...

    Java实现原神“风物之诗琴”自动演奏代码,用Java代码模拟键盘输入

    在Java编程语言中,我们可以利用特定的库来模拟键盘输入,从而实现自动化操作,比如在游戏中自动演奏特定的旋律。在“原神”这款游戏中,“风物之诗琴”是一种道具,玩家可以弹奏它来演奏各种音乐。这篇教程将探讨...

    Java实现获取窗口句柄并操作窗口jna-4.4.0

    在"Java实现获取窗口句柄并操作窗口 JNA"的场景中,窗口句柄是操作系统用来标识和管理窗口的一个标识符。在Windows系统中,窗口句柄通常被称为HWND。通过窗口句柄,我们可以执行诸如移动、最大化、最小化、关闭等...

    基于Java的Applet钢琴模拟程序源码.zip

    在我们的钢琴模拟程序中,开发者可能就是通过这种方式定义了Applet类,从而构建了一个可播放音符的虚拟键盘。 接着,我们需要关注的是Java音频处理。Java提供了一套完整的音频处理API,包括`javax.sound.sampled`包...

    模拟鼠标点击的源代码

    这样,即使在进行鼠标模拟时,主程序仍能继续执行其他任务。 4. **键盘映射和按键模拟**: 为了实现用两个按键模拟鼠标点击,需要确定哪些键盘按键将被映射为鼠标左键单击和双击。通常,可以使用ASCII码或扫描码来...

    利用Java实现远程控制

    - **Robot类**:用于模拟键盘和鼠标事件,是实现远程控制的基础。 - **Toolkit类**:提供工具箱服务,用于获取屏幕大小和颜色深度等信息。 - **JPEGCodec类**:进行JPEG图像编码和解码,确保屏幕图像高效传输。 - **...

    基于java的VR全景图+Opengl3D模型展示源码

    在Java中实现VR全景图通常涉及图像处理和数学计算,如球面坐标到屏幕坐标的转换。开发者可能使用了Java的AWT或Swing库来创建图形界面,并且利用图像处理库如JavaFX或Java2D来渲染和操作全景图。 2. **OpenGL 3D模型...

    java实现3D爱心效果.zip

    Java中实现3D图形通常有两种主要的方式:Java2D和Java3D。Java2D是一个二维图形库,虽然它的名字中没有“3D”,但通过组合2D图形和一些技巧,也能实现简单的3D效果。而Java3D则是一个更为强大的库,专为构建复杂的3D...

    Java开发技术大全(500个源代码).

    MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java 管道流示例 MySequenceIn.java 顺序输入流示例 ObjectFileTest.java 序列化对象示例 ReadAndWrite.java 读入和写出数据 ReadAndWriteFile.java ...

    java3d API 1.5.1

    6. **用户交互**:Java3D支持鼠标和键盘事件处理,可以实现用户与3D场景的交互,例如旋转、平移和缩放视图,或者响应用户的点击事件。 7. **纹理映射**:通过Texture和TextureAttributes类,开发者可以将2D图像贴附...

    电脑模拟JAVA手机软件(手机顽童)不提示升级版

    3. **操作简便**:界面友好,用户可以通过鼠标和键盘轻松操控模拟的手机界面,实现与真实手机类似的交互体验。 4. **无需升级提示**:可能是因为开发者针对用户的特定需求,手机顽童不会频繁弹出升级提示,让用户...

    java模拟器--更好,更强

    2. **键盘映射**:允许用户将手机操作映射到键盘或鼠标,便于在PC上控制Java应用。 3. **多任务处理**:可以同时运行多个Java应用,模拟多任务环境。 4. **调试工具**:提供调试接口,帮助开发者定位和修复代码问题...

    Java3d交互式三维图形编程

    本教程专注于利用Java3D实现交互式三维图形编程,帮助开发者掌握如何在Java环境中构建生动且具有交互性的3D场景。 在Java3D中,你可以创建各种几何形状,如立方体、球体、圆柱体等,并通过变换(如旋转、平移和缩放...

    java3d图形显示(JAVA开发 c/s架构)

    9. **用户交互**: Java3D支持鼠标和键盘事件,可以实现用户与3D场景的交互,例如旋转、平移和缩放场景。 10. **C/S架构**: “C/S架构”即客户端/服务器架构,Java3D可以在这种架构下运行,客户端负责展示3D图形,...

    JAVA3D.zip

    - **用户交互**:Java3D可以与Java AWT或Swing组件结合,实现用户交互,如鼠标和键盘事件处理。 - **动画**:通过定时器和更新函数,可以创建动态的3D场景,例如物体的运动、旋转或形状变化。 总的来说,Java3D为...

    java3d编程指南

    同时,附带的资源文件可能包含了一些示例项目的源码,如OReilly.Killer.Game.Programming.in.Java.May.2005.chm,这可能是与游戏编程相关的参考资料,可以辅助学习Java3D在游戏开发中的应用。 总之,通过阅读《Java...

    《Java 3D编程实践——网络上的三维动画》 源代码

    6. **交互性**:通过监听键盘、鼠标事件,可以实现用户与3D场景的互动,如拖动、旋转视图或触发特定行为。 7. **性能优化**:Java 3D提供了批处理、视锥剔除和可见性裁剪等方法来提高渲染效率。 8. **网络通信**:...

    可以在电脑上运行的Java游戏模拟器

    这种模拟器通过模拟Java虚拟机(JVM)的功能来实现对Java游戏的兼容性,使用户能够在没有实际Java手机或设备的情况下重温那些经典游戏。 "彩虹城堡"是提及的一款经典Java游戏,它可能是众多Java游戏中的一个代表,...

Global site tag (gtag.js) - Google Analytics