<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJTable_Column</id>
		<title>Java Tutorial/Swing/JTable Column - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJTable_Column"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JTable_Column&amp;action=history"/>
		<updated>2026-04-22T03:29:11Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JTable_Column&amp;diff=3899&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JTable_Column&amp;diff=3899&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JTable_Column&amp;diff=3900&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JTable_Column&amp;diff=3900&amp;oldid=prev"/>
				<updated>2010-05-31T15:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add a column without affecting existing columns ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model = (DefaultTableModel) table.getModel();&lt;br /&gt;
    TableColumn col = new TableColumn(model.getColumnCount());&lt;br /&gt;
    // Ensure that auto-create is off&lt;br /&gt;
    if (table.getAutoCreateColumnsFromModel()) {&lt;br /&gt;
      throw new IllegalStateException();&lt;br /&gt;
    }&lt;br /&gt;
    col.setHeaderValue(&amp;quot;Col3&amp;quot;);&lt;br /&gt;
    table.addColumn(col);&lt;br /&gt;
    model.addColumn(&amp;quot;Col3&amp;quot;,  new Object[] { &amp;quot;v3&amp;quot; });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add a column with values. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    // Add a column with values.&lt;br /&gt;
    model.addColumn(&amp;quot;Col2&amp;quot;, new Object[] { &amp;quot;v2&amp;quot; });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Appending a Column to a JTable Component using DefaultTableModel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Change a cell in the 2nd visible column ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    table.setValueAt(&amp;quot;New Value&amp;quot;, 0, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Change a cell in the 3rd column in the model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    table.getModel().setValueAt(&amp;quot;New Value&amp;quot;, 0, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Change Column Widths ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class ResizeColumnWidth {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final Object rowData[][] = { &lt;br /&gt;
        { &amp;quot;1&amp;quot;, &amp;quot;one&amp;quot;,  &amp;quot;I&amp;quot; },&lt;br /&gt;
        { &amp;quot;2&amp;quot;, &amp;quot;two&amp;quot;,  &amp;quot;II&amp;quot; },&lt;br /&gt;
        { &amp;quot;3&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;III&amp;quot; }};&lt;br /&gt;
    final String columnNames[] = { &amp;quot;#&amp;quot;, &amp;quot;English&amp;quot;, &amp;quot;Roman&amp;quot; };&lt;br /&gt;
    final JTable table = new JTable(rowData, columnNames);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Resizing Table&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    &lt;br /&gt;
    TableColumn column = null;&lt;br /&gt;
    for (int i = 0; i &amp;lt; 3; i++) {&lt;br /&gt;
        column = table.getColumnModel().getColumn(i);&lt;br /&gt;
        if (i == 2) {&lt;br /&gt;
            column.setPreferredWidth(100); //sport column is bigger&lt;br /&gt;
        } else {&lt;br /&gt;
            column.setPreferredWidth(50);&lt;br /&gt;
        }&lt;br /&gt;
    }    &lt;br /&gt;
    &lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Changing the Name of a Column in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
    model.addColumn(&amp;quot;Col2&amp;quot;);&lt;br /&gt;
    table.getColumnModel().getColumn(0).setHeaderValue(&amp;quot;New Name&amp;quot;);&lt;br /&gt;
    table.getTableHeader().resizeAndRepaint();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Converts a column index in the model to a visible column index ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
  }&lt;br /&gt;
  public int toView(JTable table, int mColIndex) {&lt;br /&gt;
    for (int c = 0; c &amp;lt; table.getColumnCount(); c++) {&lt;br /&gt;
      TableColumn col = table.getColumnModel().getColumn(c);&lt;br /&gt;
      if (col.getModelIndex() == mColIndex) {&lt;br /&gt;
        return c;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return -1;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Converts a visible column index to a column index in the model. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
  }&lt;br /&gt;
  public int toModel(JTable table, int vColIndex) {&lt;br /&gt;
    if (vColIndex &amp;gt;= table.getColumnCount()) {&lt;br /&gt;
      return -1;&lt;br /&gt;
    }&lt;br /&gt;
    return table.getColumnModel().getColumn(vColIndex).getModelIndex();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Disable autoCreateColumnsFromModel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    // Disable autoCreateColumnsFromModel&lt;br /&gt;
    table.setAutoCreateColumnsFromModel(false);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Disable auto resizing, Set the first visible column to 100 pixels wide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    // &lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);    &lt;br /&gt;
    TableColumn col = table.getColumnModel().getColumn(0);&lt;br /&gt;
    int width = 100;&lt;br /&gt;
    col.setPreferredWidth(width);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Displaying an Icon in a Column Head of a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.table.DefaultTableCellRenderer;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.JTableHeader;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
    model.addColumn(&amp;quot;Col2&amp;quot;);&lt;br /&gt;
    table.getTableHeader().getColumnModel().getColumn(1).setHeaderRenderer(new IconHeaderRenderer());&lt;br /&gt;
    table.getColumnModel().getColumn(1).setHeaderValue(new TextAndIcon(&amp;quot;Col2&amp;quot;, new ImageIcon(&amp;quot;icon.gif&amp;quot;)));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class TextAndIcon {&lt;br /&gt;
  TextAndIcon(String text, Icon icon) {&lt;br /&gt;
    this.text = text;&lt;br /&gt;
    this.icon = icon;&lt;br /&gt;
  }&lt;br /&gt;
  String text;&lt;br /&gt;
  Icon icon;&lt;br /&gt;
}&lt;br /&gt;
class IconHeaderRenderer extends DefaultTableCellRenderer {&lt;br /&gt;
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,&lt;br /&gt;
      boolean hasFocus, int row, int column) {&lt;br /&gt;
    if (table != null) {&lt;br /&gt;
      JTableHeader header = table.getTableHeader();&lt;br /&gt;
      if (header != null) {&lt;br /&gt;
        setForeground(header.getForeground());&lt;br /&gt;
        setBackground(header.getBackground());&lt;br /&gt;
        setFont(header.getFont());&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (value instanceof TextAndIcon) {&lt;br /&gt;
      setIcon(((TextAndIcon) value).icon);&lt;br /&gt;
      setText(((TextAndIcon) value).text);&lt;br /&gt;
    } else {&lt;br /&gt;
      setText((value == null) ? &amp;quot;&amp;quot; : value.toString());&lt;br /&gt;
      setIcon(null);&lt;br /&gt;
    }&lt;br /&gt;
    setBorder(UIManager.getBorder(&amp;quot;TableHeader.cellBorder&amp;quot;));&lt;br /&gt;
    setHorizontalAlignment(JLabel.CENTER);&lt;br /&gt;
    return this;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get column count ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
  }&lt;br /&gt;
  public TableColumn[] getColumnsInView(JTable table) {&lt;br /&gt;
    TableColumn[] result = new TableColumn[table.getColumnCount()];&lt;br /&gt;
    // Use a for loop&lt;br /&gt;
    for (int c = 0; c &amp;lt; table.getColumnCount(); c++) {&lt;br /&gt;
      result[c] = table.getColumnModel().getColumn(c);&lt;br /&gt;
    }&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get the columns from TableColumnModel in the order that they appear in the view ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
  }&lt;br /&gt;
  public TableColumn[] getColumnsInView(JTable table) {&lt;br /&gt;
    TableColumn[] result = new TableColumn[table.getColumnCount()];&lt;br /&gt;
    // Use an enumeration&lt;br /&gt;
    Enumeration e = table.getColumnModel().getColumns();&lt;br /&gt;
    for (int i = 0; e.hasMoreElements(); i++) {&lt;br /&gt;
      result[i] = (TableColumn) e.nextElement();&lt;br /&gt;
    }&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Insert a new column to a table ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
    model.addRow(new Object[] { &amp;quot;r1&amp;quot; });&lt;br /&gt;
    model.addRow(new Object[] { &amp;quot;r2&amp;quot; });&lt;br /&gt;
    model.addRow(new Object[] { &amp;quot;r3&amp;quot; });&lt;br /&gt;
    &lt;br /&gt;
    Vector data = model.getDataVector();&lt;br /&gt;
    Vector row = (Vector) data.elementAt(1);&lt;br /&gt;
    int mColIndex = 0;&lt;br /&gt;
    List colData = new ArrayList(table.getRowCount());&lt;br /&gt;
    for (int i = 0; i &amp;lt; table.getRowCount(); i++) {&lt;br /&gt;
      row = (Vector) data.elementAt(i);&lt;br /&gt;
      colData.add(row.get(mColIndex));&lt;br /&gt;
    }&lt;br /&gt;
    // Append a new column with copied data&lt;br /&gt;
    model.addColumn(&amp;quot;Col3&amp;quot;, colData.toArray());&lt;br /&gt;
    &lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.add(new JScrollPane(table));&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Locking the Width of a Column in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    TableColumn col = table.getColumnModel().getColumn(0);&lt;br /&gt;
    col.setMinWidth(100);&lt;br /&gt;
    col.setMaxWidth(100);&lt;br /&gt;
    col.setPreferredWidth(100);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Move the last visible column so it becomes the first visible column ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 10;&lt;br /&gt;
    int cols = 5;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    table.moveColumn(table.getColumnCount() - 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Packing a Column of a JTable Component according to the header text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableColumnModel;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JTable table = new JTable(3, 3);&lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    for(int i=0;i&amp;lt;table.getColumnCount();i++){&lt;br /&gt;
      DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();&lt;br /&gt;
      TableColumn col = colModel.getColumn(i);&lt;br /&gt;
      int width = 0;&lt;br /&gt;
      TableCellRenderer renderer = col.getHeaderRenderer();&lt;br /&gt;
      if (renderer == null) {&lt;br /&gt;
        renderer = table.getTableHeader().getDefaultRenderer();&lt;br /&gt;
      }&lt;br /&gt;
      Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false,&lt;br /&gt;
          false, 0, 0);&lt;br /&gt;
      width = comp.getPreferredSize().width;&lt;br /&gt;
      col.setPreferredWidth(width+2);&lt;br /&gt;
    }&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(new JScrollPane(table));&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Packing a Column of a JTable Component according to the row data ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableColumnModel;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JTable table = new JTable(3, 3);&lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    for (int i = 0; i &amp;lt; table.getColumnCount(); i++) {&lt;br /&gt;
      DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();&lt;br /&gt;
      TableColumn col = colModel.getColumn(i);&lt;br /&gt;
      int width = 0;&lt;br /&gt;
      TableCellRenderer renderer = col.getHeaderRenderer();&lt;br /&gt;
      for (int r = 0; r &amp;lt; table.getRowCount(); r++) {&lt;br /&gt;
        renderer = table.getCellRenderer(r, i);&lt;br /&gt;
        Component comp = renderer.getTableCellRendererComponent(table, table.getValueAt(r, i),&lt;br /&gt;
            false, false, r, i);&lt;br /&gt;
        width = Math.max(width, comp.getPreferredSize().width);&lt;br /&gt;
      }&lt;br /&gt;
      col.setPreferredWidth(width + 2);&lt;br /&gt;
    }&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(new JScrollPane(table));&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Remove the first visible column without removing the underlying data ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new MyDefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    table.setModel(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
    model.addColumn(&amp;quot;Col2&amp;quot;);&lt;br /&gt;
    model.addColumn(&amp;quot;Col3&amp;quot;);&lt;br /&gt;
    model.addRow(new Object[] { &amp;quot;v1&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    table.removeColumn(table.getColumnModel().getColumn(0));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class MyDefaultTableModel extends DefaultTableModel {&lt;br /&gt;
  public Vector getColumnIdentifiers() {&lt;br /&gt;
    return columnIdentifiers;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Resizable JTable Column ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ModesDescriptionAUTO_RESIZE_ALL_COLUMNSAdjusts all column widths proportionally.AUTO_RESIZE_LAST_COLUMNAdjusts the rightmost column width only to give or take space as required by the column currently being altered.AUTO_RESIZE_NEXT_COLUMNIf you&amp;quot;re reducing the width of a neighboring column, the neighboring column will grow to fill the unused space. If you&amp;quot;re increasing the width of a column, the neighboring column will shrink.AUTO_RESIZE_OFFTurns off the user&amp;quot;s ability to resize columns. The columns can still be resized programmatically.AUTO_RESIZE_SUBSEQUENT_COLUMNSAdjusts the width by proportionally altering (default) columns displayed to the right of the column being changed.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import javax.swing.JComboBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class ResizeTable {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final Object rowData[][] = { &lt;br /&gt;
        { &amp;quot;1&amp;quot;, &amp;quot;one&amp;quot;,  &amp;quot;I&amp;quot; },&lt;br /&gt;
        { &amp;quot;2&amp;quot;, &amp;quot;two&amp;quot;,  &amp;quot;II&amp;quot; },&lt;br /&gt;
        { &amp;quot;3&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;III&amp;quot; }};&lt;br /&gt;
    final String columnNames[] = { &amp;quot;#&amp;quot;, &amp;quot;English&amp;quot;, &amp;quot;Roman&amp;quot; };&lt;br /&gt;
    final JTable table = new JTable(rowData, columnNames);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
    String modes[] = { &amp;quot;Resize All Columns&amp;quot;, &amp;quot;Resize Last Column&amp;quot;, &amp;quot;Resize Next Column&amp;quot;,&lt;br /&gt;
        &amp;quot;Resize Off&amp;quot;, &amp;quot;Resize Subsequent Columns&amp;quot; };&lt;br /&gt;
    &lt;br /&gt;
    final int modeKey[] = { JTable.AUTO_RESIZE_ALL_COLUMNS, JTable.AUTO_RESIZE_LAST_COLUMN,&lt;br /&gt;
        JTable.AUTO_RESIZE_NEXT_COLUMN, JTable.AUTO_RESIZE_OFF,&lt;br /&gt;
        JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS };&lt;br /&gt;
    &lt;br /&gt;
    JComboBox resizeModeComboBox = new JComboBox(modes);&lt;br /&gt;
    ItemListener itemListener = new ItemListener() {&lt;br /&gt;
      public void itemStateChanged(ItemEvent e) {&lt;br /&gt;
        JComboBox source = (JComboBox) e.getSource();&lt;br /&gt;
        int index = source.getSelectedIndex();&lt;br /&gt;
        table.setAutoResizeMode(modeKey[index]);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    resizeModeComboBox.addItemListener(itemListener);&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Resizing Table&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(resizeModeComboBox, BorderLayout.NORTH);&lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Returns the TableColumn associated with the specified column index in the model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
  }&lt;br /&gt;
  public TableColumn findTableColumn(JTable table, int columnModelIndex) {&lt;br /&gt;
    Enumeration e = table.getColumnModel().getColumns();&lt;br /&gt;
    for (; e.hasMoreElements();) {&lt;br /&gt;
      TableColumn col = (TableColumn) e.nextElement();&lt;br /&gt;
      if (col.getModelIndex() == columnModelIndex) {&lt;br /&gt;
        return col;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Returns the visible columns in the order that they appear in the model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collections;&lt;br /&gt;
import java.util.ruparator;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
  }&lt;br /&gt;
  // &lt;br /&gt;
  public TableColumn[] getColumnsInModel(JTable table) {&lt;br /&gt;
    List result = new ArrayList();&lt;br /&gt;
    for (Enumeration e = table.getColumnModel().getColumns(); e.hasMoreElements();) {&lt;br /&gt;
      result.add((TableColumn) e.nextElement());&lt;br /&gt;
    }&lt;br /&gt;
    Collections.sort(result, new TableColumnComparator());&lt;br /&gt;
    return (TableColumn[]) result.toArray(new TableColumn[result.size()]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class TableColumnComparator implements Comparator {&lt;br /&gt;
  public int compare(Object a, Object b) {&lt;br /&gt;
    TableColumn c1 = (TableColumn) a;&lt;br /&gt;
    TableColumn c2 = (TableColumn) b;&lt;br /&gt;
    if (c1.getModelIndex() &amp;lt; c2.getModelIndex()) {&lt;br /&gt;
      return -1;&lt;br /&gt;
    } else if (c1.getModelIndex() == c2.getModelIndex()) {&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Set column width based on cell renderer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableColumnModel;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JTable table = new JTable(3, 3);&lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    for (int i = 0; i &amp;lt; table.getColumnCount(); i++) {&lt;br /&gt;
      DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();&lt;br /&gt;
      TableColumn col = colModel.getColumn(i);&lt;br /&gt;
      int width = 0;&lt;br /&gt;
      TableCellRenderer renderer = col.getHeaderRenderer();&lt;br /&gt;
      for (int r = 0; r &amp;lt; table.getRowCount(); r++) {&lt;br /&gt;
        renderer = table.getCellRenderer(r, i);&lt;br /&gt;
        Component comp = renderer.getTableCellRendererComponent(table, table.getValueAt(r, i),&lt;br /&gt;
            false, false, r, i);&lt;br /&gt;
        width = Math.max(width, comp.getPreferredSize().width);&lt;br /&gt;
      }&lt;br /&gt;
      col.setPreferredWidth(width + 2);&lt;br /&gt;
    }&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(new JScrollPane(table));&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Set table column auto-resize off ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableColumnModel;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    JTable table = new JTable(3, 3);&lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    for(int i=0;i&amp;lt;table.getColumnCount();i++){&lt;br /&gt;
      DefaultTableColumnModel colModel = (DefaultTableColumnModel) table.getColumnModel();&lt;br /&gt;
      TableColumn col = colModel.getColumn(i);&lt;br /&gt;
      int width = 0;&lt;br /&gt;
      TableCellRenderer renderer = col.getHeaderRenderer();&lt;br /&gt;
      if (renderer == null) {&lt;br /&gt;
        renderer = table.getTableHeader().getDefaultRenderer();&lt;br /&gt;
      }&lt;br /&gt;
      Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false,&lt;br /&gt;
          false, 0, 0);&lt;br /&gt;
      width = comp.getPreferredSize().width;&lt;br /&gt;
      col.setPreferredWidth(width+2);      &lt;br /&gt;
    }    &lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(new JScrollPane(table));&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setting the Column Resize Mode of a JTable Component: Disable auto resizing ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Object[][] cellData = { { &amp;quot;1-1&amp;quot;, &amp;quot;1-2&amp;quot; }, { &amp;quot;2-1&amp;quot;, &amp;quot;2-2&amp;quot; } };&lt;br /&gt;
    String[] columnNames = { &amp;quot;col1&amp;quot;, &amp;quot;col2&amp;quot; };&lt;br /&gt;
    JTable table = new JTable(cellData, columnNames);&lt;br /&gt;
    &lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setting the Width of a Column in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    // &lt;br /&gt;
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);    &lt;br /&gt;
    TableColumn col = table.getColumnModel().getColumn(0);&lt;br /&gt;
    int width = 100;&lt;br /&gt;
    col.setPreferredWidth(width);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Shades every other column yellow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTable table = new JTable() {&lt;br /&gt;
      public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) {&lt;br /&gt;
        Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);&lt;br /&gt;
        if (vColIndex % 2 == 0 &amp;amp;&amp;amp; !isCellSelected(rowIndex, vColIndex)) {&lt;br /&gt;
          c.setBackground(Color.yellow);&lt;br /&gt;
        } else {&lt;br /&gt;
          c.setBackground(getBackground());&lt;br /&gt;
        }&lt;br /&gt;
        return c;&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Shading Rows and Columns in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JTable table = new JTable() {&lt;br /&gt;
      public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) {&lt;br /&gt;
        Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);&lt;br /&gt;
        if (rowIndex % 2 == 0 &amp;amp;&amp;amp; !isCellSelected(rowIndex, vColIndex)) {&lt;br /&gt;
          c.setBackground(Color.yellow);&lt;br /&gt;
        } else {&lt;br /&gt;
          c.setBackground(getBackground());&lt;br /&gt;
        }&lt;br /&gt;
        return c;&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Specifying Fixed JTable Columns ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.JViewport;&lt;br /&gt;
import javax.swing.ListSelectionModel;&lt;br /&gt;
import javax.swing.table.AbstractTableModel;&lt;br /&gt;
import javax.swing.table.TableModel;&lt;br /&gt;
public class FixedColumnModel {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final Object rowData[][] = { { &amp;quot;1&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;I&amp;quot; }, { &amp;quot;2&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;II&amp;quot; }, { &amp;quot;3&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;III&amp;quot; } };&lt;br /&gt;
    final String columnNames[] = { &amp;quot;#&amp;quot;, &amp;quot;English&amp;quot;, &amp;quot;Roman&amp;quot; };&lt;br /&gt;
    final TableModel fixedColumnModel = new AbstractTableModel() {&lt;br /&gt;
      public int getColumnCount() {&lt;br /&gt;
        return 1;&lt;br /&gt;
      }&lt;br /&gt;
      public String getColumnName(int column) {&lt;br /&gt;
        return columnNames[column];&lt;br /&gt;
      }&lt;br /&gt;
      public int getRowCount() {&lt;br /&gt;
        return rowData.length;&lt;br /&gt;
      }&lt;br /&gt;
      public Object getValueAt(int row, int column) {&lt;br /&gt;
        return rowData[row][column];&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    final TableModel mainModel = new AbstractTableModel() {&lt;br /&gt;
      public int getColumnCount() {&lt;br /&gt;
        return columnNames.length - 1;&lt;br /&gt;
      }&lt;br /&gt;
      public String getColumnName(int column) {&lt;br /&gt;
        return columnNames[column + 1];&lt;br /&gt;
      }&lt;br /&gt;
      public int getRowCount() {&lt;br /&gt;
        return rowData.length;&lt;br /&gt;
      }&lt;br /&gt;
      public Object getValueAt(int row, int column) {&lt;br /&gt;
        return rowData[row][column + 1];&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    JTable fixedTable = new JTable(fixedColumnModel);&lt;br /&gt;
    fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    JTable mainTable = new JTable(mainModel);&lt;br /&gt;
    mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);&lt;br /&gt;
    ListSelectionModel model = fixedTable.getSelectionModel();&lt;br /&gt;
    mainTable.setSelectionModel(model);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(mainTable);&lt;br /&gt;
    Dimension fixedSize = fixedTable.getPreferredSize();&lt;br /&gt;
    JViewport viewport = new JViewport();&lt;br /&gt;
    viewport.setView(fixedTable);&lt;br /&gt;
    viewport.setPreferredSize(fixedSize);&lt;br /&gt;
    viewport.setMaximumSize(fixedSize);&lt;br /&gt;
    scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable.getTableHeader());&lt;br /&gt;
    scrollPane.setRowHeaderView(viewport);&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Fixed Column Table&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  the last column is moved to the first position ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 3;&lt;br /&gt;
    int cols = 3;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    table.getTableHeader().setReorderingAllowed(false);&lt;br /&gt;
    table.moveColumn(table.getColumnCount() - 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>