Chances are you may already have a delegate. A delegate in this case is just “any of your classes” that happen to have “any of your methods that might do the thing you want doing”. Since I don’t know anything at all about how your code is setup it’s hard for me to comment more specifically.
The delegate is the easiest way because it probably uses code you already have.
Here is an example of using a delegate method that you might already have:
https://code.google.com/p/jmonkeyplatform-contributions/source/browse/trunk/Lemur/examples/LemurGems/src/gems/CameraToggleState.java
(See the toggleCamera() method and how it’s added.)
Here is an example using actual listeners… which are implemented in the standard way all Java listeners are implemented:
https://code.google.com/p/jmonkeyplatform-contributions/source/browse/trunk/Lemur/examples/LemurGems/src/gems/CameraMovementState.java
In this case, I had the app state itself implement the listeners. It could have just as easily been an inner class or an anonymous inner class. (If you don’t know what an anonymous inner class is then google is your friend as you have some basic Java to beef up on which is probably off topic here.)
Edit: and if you are curious, those come from Lemur Gems #1: Lemur Gems #1 : InputMapper based camera movement