Questa è la classe completa, viene istanziata in un normale JScrollPanel.

codice:
import javax.swing.table.*;
import javax.swing.*;

public class ServiziJTable extends JTable{
  public ServiziJTable(){
    TableModel dataModel = new AbstractTableModel(){
      public int getColumnCount(){
        return 7;
      }
      public int getRowCount(){
        return 100;
      }
      public Object getValueAt(int row, int col){
        return new Integer(row*col);
      }
    };

    this.setModel(dataModel);


    ((DefaultTableModel)this.getColumnModel()).setColumnIdentifiers(getColumnNames());

    this.getColumnModel().getColumn(0).setMaxWidth(100);
    this.getColumnModel().getColumn(1).sizeWidthToFit();
    this.getColumnModel().getColumn(2).setPreferredWidth(200);
    this.getColumnModel().getColumn(3).setPreferredWidth(200);
    this.getColumnModel().getColumn(4).setMaxWidth(50);
    this.getColumnModel().getColumn(5).setMaxWidth(50);
    this.getColumnModel().getColumn(6).setMaxWidth(30);

  }

  private String[] getColumnNames(){
    String[] columnNames = {"Data","Cliente","Partenza","Arrivo","Colli","Importo","Iva"};
    return columnNames;
  }

  private Object[][] getTableData(){
    Object[][] data = {{"1/12/2005", "Cliente1","partenza (Nicola)","arrivo (Marco)","2","15.23€","[1]"}};
    return data;
  }

}