我正在使用Swing构建一个Java游戏,我有一个问题,即在Mac上持有A或S键太久后keyPressed
事件停止注册(考虑到游戏使用WASD,这是一个大问题运动)。
在挖掘Stack Overflow之后,我发现按住这样的键会暂停焦点,因为它会尝试打开重音字符菜单,即使没有出现正常的重音字符列表。当我在Mac上禁用角色重音菜单时,一切正常。但是,我想知道是否有一种Java本地方法可以解决此问题(例如KeyListeners
的包装器),因为我不希望所有Mac用户都必须处理这个问题。
答案 0 :(得分:1)
我有the same question,问题是Java版本。
我有JDK 1.8.0_151,但是很明显,这个问题已在JDK 1.8.0_172的某些迭代中得到解决。
您可以通过更新JDK进行开发来解决该问题,并通过使用org.apache.commons.lang3.SystemUtils
检查其Java版本来为用户避免此问题例如
if(isJavaVersionAtLeast(JavaVersion.JAVA_1_9)) {
/* Insert message/pop-up to update and give link to Java download
* You can exit the program using System.exit(0) or send them to the
* download site or link using Desktop.getDesktop().browse(new URI(url))
* Where url is the URL of the site or link in the form of a String
}