import javax.swing.*;
import javax.swing.table.*;

/**
 * @author Remi Forax
 *
 */
public class TableResizeModeExample {

  static class MultTableModel extends AbstractTableModel {
    public int getColumnCount() {
      return 5;
    }
    public int getRowCount() {
      return 5;
    }
    public Object getValueAt(int row, int column) {
      return new Integer((row+1)*(column+1));
    }
    public String getColumnName(int column) {
      return ""+(column+1);
    }
  }

  public static void main(String[] args) {
    TableModel model=new MultTableModel();
    
    int[] modes=new int[] {
      JTable.AUTO_RESIZE_ALL_COLUMNS,
      JTable.AUTO_RESIZE_LAST_COLUMN,
      JTable.AUTO_RESIZE_NEXT_COLUMN,
      JTable.AUTO_RESIZE_OFF,
      JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS
    };
    String[] texts=new String[]{
      "AUTO_RESIZE_ALL_COLUMNS",
      "AUTO_RESIZE_LAST_COLUMN",
      "AUTO_RESIZE_NEXT_COLUMN",
      "AUTO_RESIZE_OFF",
      "AUTO_RESIZE_SUBSEQUENT_COLUMNS"
    };
    
    for(int i=0;i<modes.length;i++) {
      JTable table=new JTable(model);
      table.setAutoResizeMode(modes[i]);
    
      JFrame frame=new JFrame(texts[i]);
      frame.setContentPane(new JScrollPane(table));
      frame.setSize(250,150);
      frame.show();  
    }
  }
}
