Please before you answer NOTE , I am not trying to implement a keylogger, this is just a QUESTION.

So, It just randomly happened that I started thinking about this and I figured that in java if you want to have a keyEventListener the key should be entered in a GUI/Application right? Therefore, if a person want to create a keylogger that has to catch key events outside of the application, he or she won't be able?

No, because with Java you can create keyloggers for "Java applications". You would need to implement some sort of Windows API hooks if you want to intercept keystrokes across all applications (at the OS level), which is what keyloggers which we all know of are supposed to do.