Starting on the GUI

I've got enough of my game functional such that I think it's finally time to add a GUI. For the moment I'm thinking swing/JMEDesktop, but I'm very new to GUI development.

I understand the basic concepts and am doing research, but some features that I want to explore aren't entirely clear to me. For instance, I want to take some action when focus, either the mouse or keyboard, is on a button. Is it possible to do this from swing, and if so, what should I look into? (I'm thinking things like playing clicks/beeps/UI sounds when buttons are under focus.)



It's also important that I have keyboard input for my JMEDesktop elements such that I can tab through controls, arrow on lists to scroll them, etc. Does the desktop automatically handle standard swing keyboard input, or is this something I have to support on my own?

Changing focus via the Tab key (and alike) does not work in JMEDesktop. Other default Swing behaviour should be fine.

Oh, damn. Hmm, how difficult would this be to implement? Is it just a matter of adding an InputHandler? Or are there any third-party GUIs that do support keyboard commands and work with JME?

Just to clarify this: Input to JMEDesktop works well. Only focus changing does not work (by tab or mnemonic). And adding tabbing through the components manually should not be difficult.