Adicionando elementos num jtable com arraylist

Sou muito novato em Java e gostaria de saber o seguinte como adicionando elementos num jtable com arraylist?
Obs: No momento não estou usando nenhum BD.

Att.

Cara, muita coisa que vc precisa saber sobre JTable, acessa http://www.guj.com.br/posts/list/13322.java.

Cara eu tentei de tudo para retornar o valor de um array mas não consegui, qdo utilizo o Object[][] no lugar do array list funciona, porém não atende as minhas necessidades. alguém pode me ajudar onde estou errando:

class MyTableModel extends AbstractTableModel {
		    private String[] columnNames = {"Coluna"};
		    private ArrayList data; 
		    
		    public int getColumnCount() {
		        return columnNames.length;
		    }

		    public int getRowCount() {
		        return data.size();
		    }

		    public String getColumnName(int col) {
		        return columnNames[col];
		    }

		    public Object getValueAt(int row, int col) {
		        return data[row][col];
		        
		    }
		}	
			JTable jt = new JTable();
		
		jt.setRowSelectionAllowed(false);
		jt.setModel(new MyTableModel());
		
		jcp=new JScrollPane();
		jcp.setBackground(Color.blue);
		jcp.setBounds(10,40,500,200);
		jcp.setViewportView(jt);
		principal.add(jcp);

Repare no método getValueAt da miha classe.

[code]public class TelefoneTableModel extends AbstractTableModel {

private List<TelefoneTO> telefones;
private String[] colunas = {"Tipo", "Numero"};

public TelefoneTableModel(List<TelefoneTO> telefones) {
    setTelefones(telefones);
}

public TelefoneTableModel() {
    getTelefones();
}

@Override
public int getColumnCount() {
    return 2;
}

@Override
public int getRowCount() {
    return telefones.size();
}

@Override
public String getColumnName(int column) {
    return colunas[column];
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    TelefoneTO telefoneTO = telefones.get(rowIndex);
    switch (columnIndex) {
        case 0:
            return telefoneTO.getTipoTelefone();
        case 1:
            return telefoneTO.getTel();
    }
    return null;
}

public List<TelefoneTO> getTelefones() {
    if (telefones == null) {
        telefones = new ArrayList<TelefoneTO>();
    }
    return telefones;
}

public void setTelefones(List<TelefoneTO> telefones) {
    this.telefones = telefones;
}

}
[/code]

Essa classe está funcionando perfeitamente em um projeto que estou desenvolvendo.
Espero que possa te ajudar.

Cara não estou conseguindo implementar como vc passou mas deu pra dar uma idéia. Vc teria outra idéia?