Users have come to expect a point-and-click, visual environment for the programs they run. This expectation makes creating software more of a challenge, but Java puts these capabilities into your hands with the windowing toolkit. Swing and the Abstract Windowing Toolkit provide all the classes you will need to provide a working, useful GUI in the tradition of Windows and Macintosh software—regardless of what kind of setup you're using to run Java programs. During the next hour, you'll learn more about the design of a graphical user interface as you work with layout managers, classes that are used to specify how components are arranged within a container.