当前位置: 首页 > 面试题库 >

将Char转换为Java KeyEvent KeyCode

顾嘉良
2023-03-14
问题内容

我正在编写一个基本程序,要求用户输入String,并且我尝试使用Robot(来自java.awt.Robot),它会在延迟后将该消息键入另一个文档。我现在遇到的问题是,我需要将得到的所有内容都转换message.charAt(i)KeyEvent.VK_[insert Char]KeyCode。有没有更好的方法可以做我想做的事情?我想我总是可以有一个巨大的switch语句来获取适当的KeyCode,但是我希望会有一种更优雅的方法。我做Python一段时间后的第一个想法是制作一个字符串"KeyEvent.VK_" + message.charAt(i)并将其以某种方式转换为代码,但是我认为唯一的方法是使用不鼓励使用的Reflection。


问题答案:

您可以使用以下方法解决问题:

KeyStroke ks = KeyStroke.getKeyStroke('k', 0);
System.out.println(ks.getKeyCode());

或只是使用此:

private void writeString(String s) {
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if (Character.isUpperCase(c)) {
            robot.keyPress(KeyEvent.VK_SHIFT);
        }
        robot.keyPress(Character.toUpperCase(c));
        robot.keyRelease(Character.toUpperCase(c));

        if (Character.isUpperCase(c)) {
            robot.keyRelease(KeyEvent.VK_SHIFT);
        }
    }
    robot.delay(delay);
}


 类似资料:
  • 问题内容: 将a转换为a 的最直接和/或最有效的方法是什么? 问题答案: 没有副本: 但是,该方法可能更容易编写,更容易阅读和更快。

  • 问题内容: 我已经通过使用JNI 将URL字符串从Java传递为C代码作为数据类型。我的库方法需要一个as url。 我如何转换的? PS:在C中使用jcharArray有什么优势吗?(即在本地方法中传递而不是字符串) 问题答案: 这是我开始使用JNI时发现的几个有用的链接 http://en.wikipedia.org/wiki/Java_Native_Interface http://down

  • 问题内容: 有没有办法将a 变成a 或将一个字母变成a (例如如何将a 变成a 和a 变成an )?(如果可以,请链接到相关文档)。 我该如何找到在文档中才隐约知道的类似内容? 问题答案: 您可以通过确定可能涉及的类来查找文档。在这里,候选人是和。 您应该先熟悉以下内容: 原始包装 中的Java Collection框架 它还有助于通过教程更慢地介绍API。 处理字符串中的字符

  • 问题内容: 我有一个byte.Buffer,我使用binary.Write()函数包装了数据。然后,我需要将此字节数组发送到C函数。使用Go 1.6时,我未能成功解决这一问题。 它在调用C函数的行上失败: C函数: 我能够使以下内容正常工作,但将字节数组转换为字符串感觉不对。有一个更好的方法吗?这种方法是否会对数据产生副作用? 同样,这需要在Go 1.6(引入了更严格的cgo指针规则)下工作。 谢

  • 问题内容: 下面是一个代码片段, 但是我得到的是空输出。 我将得到1作为输出。 有人可以解释吗?如果我想像第一个代码片段一样将int转换为char,该怎么办? 问题答案: 会打印出ascii值为1的字符(首字符,这是不可打印的)。 将以ascii值49输出一个字符(一个对应于“ 1”) 如果要转换数字(0-9),则可以将数字加48并进行转换,例如;。 如果要转换 as asi的ascii值,可以使

  • 问题内容: 我有一个Swift程序,可以与C库互操作。这个C库返回一个内部带有数组的结构,如下所示: 该定义已正确导入到Swift中。但是,该字段被解释为8个元素(类型为)的 元组 ,我不知道如何使用Swift 将其转换为a 。 没有可以接受元组的初始化程序,并且似乎不可能获得指向元组的第一个元素的指针(因为类型可以是异构的,这并不奇怪)。 现在,我最好的主意是创建一个微型C函数,该函数接受指向结