Java JTable Column Size Calculate calculateColumnWidth(JTable table, int columnIndex)

Here you can find the source of calculateColumnWidth(JTable table, int columnIndex)

Description

Calculates the required width of a table column

License

Open Source License

Parameter

Parameter Description
table JTable
columnIndex column index

Return

width of the column

Declaration

public static int calculateColumnWidth(JTable table, int columnIndex) 

Method Source Code

//package com.java2s;
/** (C) Copyright 1998-2004 Hewlett-Packard Development Company, LP
    /*from  w ww. j a va 2s.c o  m*/
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
    
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
    
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    
For more information: www.smartfrog.org
    
*/

import java.awt.Component;

import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

public class Main {
    /**
     *Calculates the required width of a table column
     *
     *@param  table        JTable
     *@param  columnIndex  column index
     *@return  width of the column
     */
    public static int calculateColumnWidth(JTable table, int columnIndex) {
        int width = 0;

        // The return value
        int rowCount = table.getRowCount();

        // Header width
        TableCellRenderer renderer = table.getTableHeader().getDefaultRenderer();
        Component comp = renderer.getTableCellRendererComponent(table, table.getColumnName(columnIndex), false,
                false, 0, columnIndex);
        width = comp.getPreferredSize().width;

        // Cells width
        for (int i = 0; i < rowCount; i++) {
            renderer = table.getCellRenderer(i, columnIndex);
            comp = renderer.getTableCellRendererComponent(table, table.getValueAt(i, columnIndex), false, false, i,
                    columnIndex);

            int thisWidth = comp.getPreferredSize().width;

            if (thisWidth > width) {
                width = thisWidth;
            }
        }

        return width;
    }
}

Related

  1. calcColumnWidth(JTable table, int col)
  2. calcColumnWidths(final JTable table)
  3. calcColumnWidths(final JTable table)
  4. calcColumnWidths(JTable table)
  5. calcColumnWidths(JTable table)
  6. calculateColumnWidth(JTable table, int columnIndex)
  7. calculateColumnWidth_1(JTable table, int pos)
  8. fixedColumSize(TableColumn c, int width)
  9. fixSize(TableColumn column, JTable table)