public void resizeColumns()
    {
        if (_vertical)
        {
            TableColumn column = _table.getColumnModel().getColumn(1);
            int origWidth = column.getWidth();
            int width = origWidth;
            Font font = _table.getFont();
            FontMetrics fontMetrics = _table.getFontMetrics(font);
            for (Iterator<FieldValue> iter = _fieldListValues.iterator(); iter.hasNext();)
            {
                FieldValue value = (FieldValue)iter.next();
                int textWidth = SwingUtilities.computeStringWidth(fontMetrics,
                                                                  value.getStringValue());
                if (textWidth > width)
                    width = textWidth;
            }
            if (width > origWidth)
            {
                width += _table.getIntercellSpacing().width;
                column.setPreferredWidth(width);
                _table.invalidate();
                _table.doLayout();
                _table.repaint();
            }
        }
        else
        {
            int i = 0;
            boolean changed = false;
            Font font = _table.getFont();
            FontMetrics fontMetrics = _table.getFontMetrics(font);

            for (Iterator<FieldValue> iter = _fieldListValues.iterator(); iter.hasNext();)
            {
                TableColumn column = _table.getColumnModel().getColumn(i);
                int origWidth = column.getWidth();
                FieldValue value = (FieldValue)iter.next();
                int width = SwingUtilities.computeStringWidth(fontMetrics, value.getStringValue());
                if (width > origWidth)
                {
                    width += _table.getIntercellSpacing().width;
                    column.setPreferredWidth(width);
                }
            }
            if (changed)
            {
                _table.invalidate();
                _table.doLayout();
                _table.repaint();
            }
        }
    }