当前位置: 首页 > 知识库问答 >
问题:

我可以用Java的Robot类(Java.awt.Robot)模拟游戏键盘按钮按下吗?

叶俊郎
2023-03-14

我使用Arduino Uno通过USB或蓝牙将(正版)SNES控制器连接到计算机上。

Arduino使用snespad库捕获控制器的按钮按下和释放。它将按钮按下和释放作为字符进行通信(例如按下A的“a”,释放“A”的“A”)。接下来,一个Java程序使用rxtx库监听串行输出。最后,一个Java机器人使用keyPress和keyRelise模拟按键。

不幸的是,这种方法有一些缺点。主要问题是密钥映射。我随意决定了哪些按钮是键盘键。

Java似乎没有任何游戏键盘事件。当我说“game pad KeyEvent”时,我指的是Android SDK的功能:http://developer.android.com/reference/android/view/KeyEvent.html(ctrl f“游戏板”或“按钮”。)

我的问题是,有没有一种方法可以用Java的robot类来模拟游戏键盘按键而不是按键?

共有2个答案

岑和风
2023-03-14

根据我的经验,你应该能够很容易地将游戏板按钮映射到键盘按钮。我知道的唯一映射是i,j,k,l四处查看,w,a,s,d四处移动

濮阳翔
2023-03-14

在JAVA中使用ROBOT类

您可以通过以下方式创建虚拟按键/发布...

Robot robo=new Robot();
robo.keyPress(KeyEvent.VK_A);
//don't forget to release it else you'll land up in infinite loop
robo.KeyRelease(KeyEvent.VK_A);

干杯

 类似资料:
  • 问题内容: 我正在寻找模拟在Java中短时间内按住键盘键的操作。我希望下面的代码按住A键5秒钟,但是只按一次它(在记事本中测试时会产生一个“ a”)。我是否需要使用其他东西,或者我在这里使用awt.Robot类错了吗? 问题答案: Thread.sleep()阻止当前线程(按住键的线程)执行。 如果希望它在给定的时间内按住键,也许应该在并行线程中运行它。 这是一个解决Thread.sleep()问

  • 编辑:解决了,多亏了Mgorgon。 我正在创建一个简单的游戏,它(目前)允许你用鼠标点击在当前位置的每个方向上移动一个点1步。然而,这只在板是正方形(你可以选择板的大小)时才起作用。板由带有图像和2D数组的按钮表示,以跟踪位置,其中“1”是点的位置,“0”是一个空闲空间。actionlistener中的Pos1和Pos2打印出所单击的按钮的位置。当游戏棋盘是正方形时,这很有效,但当我把棋盘改成矩

  • 问题内容: 我想运行一个Java程序,并使其模拟键盘按键。因此,例如,可以在聚焦的输入框中键入一些文本。这可能吗? 问题答案: 可能会有所帮助。 这是的一个简单示例代码片段:

  • 这是我的代码: 我所要做的就是使esc按钮与backspace按钮完全相同。所以我想删除

  • 问题内容: 我想按一下软键盘上的任何键。我不想在Activity中使用EditView或TextView,必须从Activity内部的扩展View处理该事件。 我只是试过这个: 1)覆盖活动方法。该功能不适用于软键盘,只能捕获很少的硬键盘。 2)创建我的并在我的视图中注册该视图,其中包含已注册并正在运行的。这对于软键盘根本不起作用。 3)覆盖View方法。如果我设置我的OnKeyListener或

  • 我在Java中创建了一个小TicTacToe游戏,我想编写更有效的代码,我会制作一个for循环来创建9个按钮。 我现在面临的问题是如何测试按下哪个按钮以确定胜利者。我已经注释掉了我的旧测试代码,因为它不再工作。