Erro ao exbir campos na tabela

Oi!!
Estou criando uma janela que trás todos os registros do banco de dados em uma Jtabel.
No banco tenho uma tabela chamada clientes com os seguintes campos:
Id(chave primaria) , nome , endereco, telefone, cep , cidade, numero, estado, email, celular e fotos.

Usei o seguinte codigo na classe Relatorio:

[color=darkblue]package relatorio;

[color=#444444]/**
*

  • @author Vinícius
    /
    import java.awt.
    ;
    import java.awt.event.;
    import java.sql.
    ;
    import javax.swing.;
    import java.util.
    ;

    /* This method is called from within the constructor to

    • initialize the form.
    • WARNING: Do NOT modify this code. The content of this method is
    • always regenerated by the Form Editor.
      */

    // <editor-fold defaultstate=“collapsed” desc=“Generated Code”>
    public class Relatorio extends JFrame{
    private Connection con;
    private JTable tabela;

public Relatorio(){
super("Agenda - Nomes" );
String url = "jdbc:odbc:clientes";
String usuario = "";
String senha = "";
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con = DriverManager.getConnection(url, usuario, senha);
}
catch (Exception e){
JOptionPane.showMessageDialog(null,"Conexão não estabelecida","Mensagem do Programa", JOptionPane.ERROR_MESSAGE);
}
buscaTabela();
setSize(800,400);
setVisible(true);
}
public static void main(String args[]){
Relatorio app = new Relatorio();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void buscaTabela(){
Statement st;
ResultSet res;
try{
Vector cabecalho = new Vector();
Vector linhas = new Vector();
st = con.createStatement();
res = st.executeQuery("SELECT * FROM clientes ORDER BY Nome");
res.next();
ResultSetMetaData rsmd = res.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
cabecalho.addElement(rsmd.getColumnName(i));
do{
linhas.addElement(proximaLinha(res,rsmd));
}
while (res.next());
tabela = new JTable(linhas,cabecalho);
JScrollPane scroller = new JScrollPane( tabela );
getContentPane().add(scroller, BorderLayout.CENTER);
validate();
st.close();
}
catch (SQLException sqlex){
}
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd){
Vector LinhaAtual = new Vector();
try{
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
switch(rsmd.getColumnType(i)){
case Types.VARCHAR: LinhaAtual.addElement(rs.getString(i));
break;
case Types.TIMESTAMP: LinhaAtual.addElement(rs.getDate(i));

break;
case Types.NUMERIC: LinhaAtual.addElement(new Long(rs.getLong(i)));
break;
}
}
catch(SQLException e){
}
return LinhaAtual;
}
}[/color][/color]

porem quando compilo o programa e abro a janela de relatorios ele me trás o cabeçalho certinho, porém não me tras dos dados da coluna ID. Na coluna de titulo ID, vem os nomes, de endereco vem os numeros e assim por diante.
Creio que seja um errinho simples de lógica, porém não consegui achá-lo.
aguardo uma ajuda, enquanto isso vou tentando solucionar esse problema.
Obrigado!!

http://guj.com.br/posts/list/214099.java