It all started when I wrote a small code to read input from the keyboard and display the events on screen, to see if I understood how to use this API. It did nothing at all. I put some print statements around my code and noticed that the devices were being recognized, but the event queue was always empty. I tried polling all my devices and pressing random keys and moving my mouse around, and nothing happened. Searching for a solution I stumbled upon this forum, and from what I read I assumed it could have something to do with focus (since I didn't have a window for my proyect yet). To do some tests, I replaced the call to getDefaultEnvironment with new DirectInputEnvironmentPlugin, since you said that didn't require the focus of a window, and it worked perfectly. Then I tried rendering a JFrame, and used the DirectAndRawEnvironmentPlugin, and it also worked, only when I had the focus on the JFrame, which is what you said in another post. Now, I kept the JFrame and changed my code to call getDefaultEnvironment again, but that didn't work at all, even when my JFrame has the focus.
I don't want to rely in a single environment, cause I want my game to be OS agnostic, but apparently I can't trust the default one to work at all. What could it be? How can I see which environment is the default for my system? Lastly, in the case I have to give up and use the DirectAndRaw environment (for multi keyboard and mouse compatibility), will that recognize any other supported device the user plugs in, or will I be more limited with respect to DirectInput?
PS: I'm using the last JInput version, as of the date of this post.