Я добавил Java3D KeyNavigatorBehavior к SimpleUniverse в моей программе Java3D. Я знаю, что KeyNavigatorBehavior обнаруживает, когда нажимаются стрелки вверх, вниз, влево и вправо, но я также хотел бы обнаружить другие ключи, такие как WASD, но не имел большого успеха в поисковой системе «пользовательское поведение навигатора Java3D».Пользовательский KeyListener в Java3D
Я смотрел на исходный код KeyNavigatorBehavior, найти здесь:
и заметил, что класс KeyNavigator, здесь:
кажется обрабатывать ключ Мероприятия. К сожалению, объект является частным членом класса без геттера или сеттера, поэтому я не думаю, что у меня есть доступ к нему.
Я также попытался добавить KeyListener к SimpleUniverse.getCanvas(), но это не сработало, и я не думаю, что это правильный метод.
Мне интересно, может ли кто-нибудь дать мне предложение о том, как я могу добавить свои собственные ключи, которые будут обнаружены в Java3D.
(Я понимаю, что я могу скопировать и вставить исходный код и сделать все изменения, мне нужно, но я надеюсь, что может быть лучше и менее болезненной альтернативой.)
Спасибо за помощь!
Что означает «не работает»? Предполагая, что вы используете Swing для создания окна, в котором вы рисуете, я предлагаю вам ознакомиться с [Учебным пособием по Oracle KeyListener] (http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html). Он должен применяться одинаково хорошо для приложения Java3D. –
Ugh. Спасибо что подметил это. Я просто подумал, что «не работает» снова, и понял, что это работает - я просто забыл вызвать метод, чтобы добавить слушателя. Я чувствую себя действительно глупо сейчас ... если вы хотите опубликовать это как ответ, я с радостью приму это. – user2570465