thinking in java chapter 22 - Graphical user interface