我在Java3D程序中将Java3D的KeyNavigatorBehavior添加到SimpleUniverse中。我知道KeyNavigatorBehavior会在按下向上,向下,向左和向右箭头时检测到,但我还想检测其他按键,例如WASD,但是没有太多运气搜索“自定义Java3D键导航器行为”。< / p>
我查看了KeyNavigatorBehavior源代码,可在此处找到:
并注意到KeyNavigator类,在这里找到:
似乎处理关键事件。不幸的是,该对象是没有getter或setter的私有类成员,因此我认为没有任何方法可以访问它。
我也尝试过将KeyListener添加到SimpleUniverse.getCanvas(),但是这不起作用,我认为这不是正确的方法。
我想知道是否有人可以给我一个关于如何添加自己的密钥以便在Java3D中检测到的建议。
(我意识到我可以复制并粘贴源代码并进行我需要的任何更改,但我希望可能有更好,更少痛苦的替代方案。)
感谢您的帮助!
答案 0 :(得分:0)
实际上,由于Monad Newb的评论,我发现了这个问题。实际上你可以使用simpleUniverse.getCanvas()。addKeyListener()为你的Java3D程序添加一个键监听器,关键事件应该可以正常工作。