If you've ever wondered why the table component is so complex and why Sun hasn't added support for a million requested features, now you know. The table component was designed to be configurable so that you can add those features for yourself. However, before you can do that, you need a basic understanding of how the table component works.
This article explored the table component by focusing on its three models. The first model (which I referred to without any qualifying adjective) stores cell values. The second column model stores TableColumn objects that describe various attributes about individual columns (such as a column's cell editor, cell renderer, header renderer, width, and so forth). Also, TableColumn objects maintain a link to the associated model columns via internal modelIndex fields. The final selection model stores information about selected intervals. As you learned, a table component contains two selection models. One selection model deals with row selections, and the second selection model deals with column selections. Finally, the article discussed the more advanced concepts of rendering, keystrokes and actions, and editors. Having access to that information makes it possible to customize a table component in various ways.
Now that you have some basic knowledge of a table component, you might be wanting to experiment. To help you do that, check out the second and third articles in this trilogy. Those articles contain simple and more advanced tips for creating more powerful tables.