Sorry for the delay in replying, was busy getting married
Get the ControllerEnvironment by calling getDefaultEnvironment(), this gives you the plugin for the environment. From that you can get your controllers
A controller in jinput is not just a device like a joystick/mouse/keyboard/gamepad, but may also be some *part* of a device. For example, there maybe a controller instance to represent a mouse, but this may have no components, it may be that it has instead 2 sub controllers, one for the ball, and one for the buttons.
A Component is an axis, a button, or a key. From the components you can get information about the component, like the value, whether it's absoulte or relative, if it's boolean or analog etc etc.
You must remember to poll the controllers, I recommend polling at least 50 times a second. If you don't poll frequently enough, you will fill up the underlying buffers and start losing input events.
HTH a little