When we started using the swing library, we noticed that it was a huge step forward in technology. Swing components are beans, so they can be used in any development environment of the bean. Swing provides a complete set of UI components. Because of the speed, all the components are small (no "heavyweight" components are used), and swing is written throughout Java for portability.
The most important thing is that we want swing to be called "orthogonal use"; Once we adopt this universal approach to libraries we can apply them everywhere. This is mainly because of the bean naming conventions, and most of the time when I write these program examples I can guess the method name and spell it right the first time without looking for anything. This is undoubtedly a quality proof of the excellent library design. In addition, we can extensively insert components into other components and the events will work properly.
Keyboard operations are automatically supported-we can use swing applications without the need for a mouse, but we have to do some extra programming (the old AWT needs some scary code to support keyboard operations). Scrolling is supported effortlessly-we simply put our component into a jscrollpane, and we add it to our form. Other features, such as a ToolTip bar, require a single line of code to execute.
Swing also supports something called "pluggable looks and effects," which means that the appearance of the UI can be changed dynamically on different platforms and on different operating systems to meet the user's expectations. It can even create our own appearance and effect.