Dúvida no AbstractTableModel

Olá pessoal do fórum,
estou com umas dúvias sobre o AbstractTableModel. Tenho a seguinte classe:

[code]public class ModeloTabela extends AbstractTableModel {

@SuppressWarnings("rawtypes")
private ArrayList linhas = null;
private String[] colunas = null;
private boolean [] colsEdicao;

@SuppressWarnings("rawtypes") 
public ModeloTabela(ArrayList dados, String colunas[], boolean [] edicao){
    
    setLinhas(dados);
    setColunas(colunas);
    colsEdicao = edicao;
}        
public void setValueAt(Object value, int row, int col){  

    String [] linha = (String [])getLinhas().get(row);  
    linha[col] = (String)value;  
    fireTableCellUpdated(row,col);  
} 
public boolean isCellEditable(int row, int col){  
    return colsEdicao[col];  

}
public String[] getColunas() {
    return colunas;
}
@SuppressWarnings("rawtypes")
public ArrayList getLinhas() {
    return linhas;
}
public void setColunas(String[] strings) {
    colunas = strings;
}
@SuppressWarnings("rawtypes")
public void setLinhas(ArrayList list) {
    linhas = list;
}    
@Override
public int getColumnCount() {

    return getColunas().length;
}
@Override
public int getRowCount() {

    return getLinhas().size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    
    String[] linha = (String[]) getLinhas().get(rowIndex);
    return linha[columnIndex];
}    

}[/code]


E na hora de usar:

[code]String[] colunas = new String[] { “Código”, “Cliente”, “Placa”,
“Banco”, “Valor”, “D. Entrada”, “D. Entrega”, “Observação” };
SimpleDateFormat f = new SimpleDateFormat(“dd/MM/yyyy”);

        for (int i = 0; i < listaDeRegistros.size(); i++) {

            Registro registro = listaDeRegistros.get(i);

            dados.add(new String[] { Long.toString(registro.getCodigo()),
                    registro.getCliente(), registro.getPlaca(),
                    registro.getBanco(),
                    Float.toString(registro.getValor()),
                    f.format(registro.getDataEntrada()),   f.format(registro.getDataEntrega()),
                    registro.getObs() });
        }

        boolean[] edicao = { false, true, true, true, true, false, true,
                true };
        modelo1 = new ModeloTabela(dados, colunas, edicao);

        table_1 = new JTable(modelo1);
        table_1.setBounds(10, 11, 864, 376);[/code]

Vamos as questões:
1 - Como fazer pra definir o tamanho de uma coluna manualmente??? O campo 'oberservação’
tem que ser um pouco maior do que tá aparecendo, por exemplo.
2 - Os títulos das colunas NUNCA aparecem. Como colocar?
3 - Como aumentar a largura das linhas do modelo???

Agradeço desde já a todos

Jonh

Então, voce precisa colcoar seu JTable dentro de um JScrollPane para os titulos aparecerem.

Uma observação, seu model é só uma cópia do DefaultTableModel, sua lista de dados devia ser de um tipo de algum objeto e não apenas String[].

quando a redimencionar o tamanho das colunas e linhas, voce pode utilizar propriedades da propria tabela, mas seu abstract table model pode ser melhorado, segue o exemplo que o Marky.Vasconcelos tem ali que é bem util.