Java3D中的自定义KeyListener

时间:2013-08-14 00:35:01

标签: java listener keylistener java-3d

我在Java3D程序中将Java3D的KeyNavigatorBehavior添加到SimpleUniverse中。我知道KeyNavigatorBehavior会在按下向上,向下,向左和向右箭头时检测到,但我还想检测其他按键,例如WASD,但是没有太多运气搜索“自定义Java3D键导航器行为”。< / p>

我查看了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中检测到的建议。

(我意识到我可以复制并粘贴源代码并进行我需要的任何更改,但我希望可能有更好,更少痛苦的替代方案。)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

实际上,由于Monad Newb的评论,我发现了这个问题。实际上你可以使用simpleUniverse.getCanvas()。addKeyListener()为你的Java3D程序添加一个键监听器,关键事件应该可以正常工作。