The JTable Class
Before we get ahead of ourselves, let’s look at the JTable
class and its supporting cast
members.
Table Columns
With Swing tables, the basic unit is not an individual
cell but a column. Most columns in real-world tables represent a
certain type of information that is consistent for all records. For
example, a record containing a person’s name is a String
and might be the first column of the
table. For every other record (row), the first cell is always a
String
. The columns do not need to
all have the same data type. The same record could hold not only a
person’s name, but whether or not they owned a computer. That column
would hold Boolean
values, not
String
values. The models
supporting JTable
reflect this view
of the world. There is a TableModel
that handles the contents of each cell in the table. You will also
find a TableColumnModel
that tracks
the state of the columns in the table (how many columns, the total
width, whether or not you can select columns, etc.).
The ability to store different types of data also affects how
the table draws the data. The table column that maps to the “owns a
computer” field could use a JCheckBox
object for the cells of this
column while using regular JLabel
objects for the cells of other columns. But again, each column has one
data type and one class responsible for drawing it.
Now, as the JTable
class evolves, you may find alternate ways to think about tables without relying so heavily on columns. You’ll want to keep an eye on ...
Get Java Swing, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.