A TableModel class manages all the data storage and retrieval for the JTable class.
The TreeModel class manages the data relationships between nodes in a JTree.
An array, a vector, or a combination of the two can be used to create JTrees.
A JOptionPane can have any one of a number of different looks. The icons, buttons, data entry fields, choice list, and so forth can vary according to the MessageType that you pass in to the constructor.