
Size Your Columns to Suit Your JTable’s Contents #21
Chapter 3, Tables and Trees
|
103
HACK
If it does, then we have a usability problem to discuss. By default, the col-
umns of a
JTable are all the same size. For this data, that’s obviously a terri-
ble decision—there’s far too much space reserved for the numbers in the
count column, and not nearly enough in the URL column. So, how are you
going to fix this?
If you said “turn on the horizontal scrollbar,” please close this book, grasp it
with both hands, and firmly smack yourself in the head with it. No, you are
not turning on the horizontal scrollbar! Use the pixels available to you
before you resort to the user-annoying desperation of horizontal scrolling. In
this case, the count column has lots of pixels to spare; you just need to real-
locate this extra space to the URL column.
Resetting Column Widths
What makes programmatic column resizing difficult for many Swing pro-
grammers is that they can’t even find the right methods to use. If all you ever
work with is
JTable (and maybe a few custom cell renderers), you’ll notice
that the JavaDoc for those classes says nothing about column widths. The
problem may be that the
JTable is so generous with helpful methods that
you’d never even notice that it’s made up of
TableColumn objects. Take a
look at that
TableColumn’s JavaDoc, and you’ll find getters and setters for
minimum, maximum, and preferred widths for ...