Swing doesn’t seem as slow to me as some say it is. However, there is at least one issue that could be faster: Swing has its own double buffering. Shutting it off causes flicker even when I use a BufferStrategy. I certainly don’t need to double buffer twice.
The obvious alternative is the AWT. The problem I have with the AWT is that it has only a tiny percentage of the features that Swing does.
One issue that I have with both AWT and Swing is the AWT Event Dispatch Thread. Now that I know a bit about Swing, it’s not that big of a deal, but it’s still annoying. I would rather call a method like “checkForKeyboardInput” than have AWT’s passive input-checking. This seems to be a common preference among game programmers. I would rather not have the AWT Event Dispatch Thread and have everything included in my main loop with a few simple method calls. Then I could use multithreading as needed and have it in my own control.
There’s SWT, but that doesn’t seem to be able to use full-screen exclusive mode. It also isn’t that much different from Swing. Though it’s better in some ways, it’s also worse in others.
I’ve heard of various game programming libraries. Slick seems to be the most programmer friendly. Jogl and LWGL are very low level libraries that serve the same purpose. Do any of these libraries (or others) include any alternative gui?
What is everyone else here using? Though I can’t change for the project I’m almost done with or the project that I’m going to revisit briefly, I may change we start our next new project.