0

我已在我的 Java3D 程序中将 Java3D 的 KeyNavigatorBehavior 添加到 SimpleUniverse。我知道 KeyNavigatorBehavior 检测何时按下向上、向下、向左和向右箭头,但我也想检测其他键,例如 WASD,但在谷歌搜索“自定义 Java3D 键导航器行为”时运气不佳。

我查看了 KeyNavigatorBehavior 源代码,可在此处找到:

http://www.java2v.com/Open-Source/Java-Document/6.0-JDK-Modules/java-3d/org/jdesktop/j3dfly/utils/vpbehaviors/KeyNavigatorBehavior.java.htm

并注意到 KeyNavigator 类,在这里找到:

http://www.java2v.com/Open-Source/Java-Document/6.0-JDK-Modules/java-3d/com/sun/j3d/utils/behaviors/keyboard/KeyNavigator.java.htm

似乎处理关键事件。不幸的是,该对象是一个没有 getter 或 setter 的私有类成员,所以我认为没有任何方法可以访问它。

我也尝试将 KeyListener 添加到 SimpleUniverse.getCanvas(),但这不起作用,我认为这不是正确的方法。

我想知道是否有人可以就如何添加自己的密钥以在 Java3D 中检测到的建议给我。

(我意识到我可以复制和粘贴源代码并进行我需要的任何更改,但我希望可能有一个更好、更不痛苦的选择。)

谢谢您的帮助!

4

1 回答 1

0

实际上,由于 Monad Newb 的评论,我找到了问题所在。实际上,您可以只使用 simpleUniverse.getCanvas().addKeyListener() 向您的 Java3D 程序添加一个按键侦听器,按键事件应该可以正常工作。

于 2013-08-14T18:08:50.853 回答