Here you can find the source of setColumnWidths(JTable p_Table, int[] p_ColumnWidths)
public static void setColumnWidths(JTable p_Table, int[] p_ColumnWidths)
//package com.java2s; //License from project: Open Source License import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.table.TableColumnModel; public class Main { public static void setColumnWidths(JTable p_Table, int[] p_ColumnWidths) { TableColumnModel columns = p_Table.getTableHeader().getColumnModel(); // when restoring from the prefs with a new version of the product, // then it is possible that: p_ColumnWidths.length != // columns.getColumnCount() if (p_ColumnWidths == null || p_ColumnWidths.length != columns.getColumnCount()) { return; }//w w w.j a va 2s.c om for (int i = 0, c = columns.getColumnCount(); i < c; i++) { columns.getColumn(i).setPreferredWidth(p_ColumnWidths[i]); } p_Table.getTableHeader().resizeAndRepaint(); JScrollPane scrollpane = findScrollPane(p_Table); if (scrollpane != null) { scrollpane.invalidate(); } p_Table.invalidate(); } public static JScrollPane findScrollPane(JTable p_Table) { return (JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, p_Table); } }