For example, the figure shows three buttons: one with text label, one with an image icon, and one with both text and icon.
Many Swing's JComponents (such as JLabel and JButton) support a text label and an image icon. JComponent and its descendants are lightweight components. The class hierarchy of Swing's JComponents is as follows. These top-level Swing containers are heavyweight, that rely on the underlying windowing subsystem of the native platform. The class hierarchy of Swing's top-level containers ( JFrame, JDialog, JApplet) are as follows.
JDK demo includes a folder ' jfc', which has many interesting demo on Swing and Java2D.