I found that I needed a little more functionality than the current input system of JME provides so I built a new class on top of it.

It is quite similar to KeyBindingManager, with the exception that it treats all sources of input (keyboard, mouse, joysticks, game controllers etc) the same and completely interchangeably.  As well, it provides the same functionality to all inputs with axes.

It hasn't been completely tested, but it works well on my machine.

Finally, it allows itself to be saved an a very clear xml format:

<?xml version="1.0" encoding="UTF-8"?>
<InputSettings Version="1.0">
    <!--Input Settings-->
        <!--Axis Bindings-->
        <Axis Axis="X Axis" ID="Mouse X" Input="Mouse" Oneway="False" Sensitivity="1.0"/>
        <Axis Axis="Y Axis" ID="Mouse Y" Input="Mouse" Oneway="False" Sensitivity="1.0"/>
        <Axis Axis="X Axis" ID="Joystick Test" Input="Saitek Cyborg Evo" Oneway="False" Sensitivity="1.0"/>
        <!--Key/Button Bindings-->
        <Binding Button="ESCAPE" ID="Exit" Input="Keyboard"/>
        <Binding Button="H" ID="Hello World" Input="Keyboard"/>
        <Binding Button="Button 1" ID="Every Frame" Input="Mouse"/>

Any number of buttons/axes can be attached to the same ID, and the wrapper will combine them appropriately.
I zipped it up as com.r691175002.iwrapper since I don't have a domain name, and commented the entire thing up (as well as a demo program).

You mean sort of like the GameControl system in jME? :wink:

darkfrog said:

You mean sort of like the GameControl system in jME? ;)

I had no idea that existed.  Oh well.

Rather than developing up yet another input handling system I would suggest taking a look at it and I would be happy to apply any patches for additional functionality you'd like to add to it.