Problema para adiconar dados em JTable (Resolvido)

Salve galera,

Estou com o seguinte problema: queria fazer uma listagem de alguns dados de meu bando de dados, só que a hora q preenche o JTable, só aparece os dados da última posição de minha tabela do meu banco.

Segue o código:

try
{

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    conexao = DriverManager.getConnection(URLc,"","");
    SQLStatC1 = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
	    	    	    		
    String consulta = "SELECT * FROM CD ORDER BY Nome_CD";
    RsC1 = SQLStatC1.executeQuery(consulta);
        
    String cd="";
    String[] colunas = new String[]{"Cd"};
        	        	        
    if (!(RsC1.next()))
    {
        JOptionPane.showMessageDialog(null, "Nenhum CD cadastrado","Informação",JOptionPane.WARNING_MESSAGE);
    }
    else { RsC1.previous(); }
			        	
    while (RsC1.next())
    {
        cd = RsC1.getString("Nome_CD");
        String[][] dados = new String[][]
        { {cd} }; 
	
        modelo = new DefaultTableModel(dados,colunas);
		  		
    } 
            
    tabela = new JTable(modelo);
    tabela.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        	
    RsC1.close();
    conexao.close();
		
}
catch (SQLException e)
{
    JOptionPane.showMessageDialog(null, e,"Erro",JOptionPane.ERROR_MESSAGE);
}
catch (Exception e)
{
    JOptionPane.showMessageDialog(null, e,"Erro",JOptionPane.ERROR_MESSAGE);
}

Alguém tem uma solução?

Valeu.

[quote=brunobegnami][code] while (RsC1.next())
{
cd = RsC1.getString(“Nome_CD”);
String[][] dados = new String[][]
{ {cd} };

    modelo = new DefaultTableModel(dados,colunas);
} [/code]

Alguém tem uma solução?[/quote]

Tire a última linha de dentro do while.

Não deu certo, se eu comento a linha, ele não lista nada, e se eu tiro fora do while, e coloco depois, dá erro:

ListaCd.java:75: cannot resolve symbol
symbol  : variable dados 
location: class ListaCd
                modelo = new DefaultTableModel(dados,colunas);
                                               ^
1 error

O que eu quiz dizer é para você rever a lógica que está usando aí. Você está criando um novo model a cada iteração do while. O que está totalmente errado. Na verdade vc tem que ter um model apenas e ir adicionando dados ao model a cada iteração do while. Sacou?

Saquei. Mas, como está zuado, achei um artigo de JTable aqui no site do Guj, e tentei fazer algumas adaptações, eis o código mudado:

ArrayList dados = new ArrayList();
String[] colunas = new String[] { "Nome do Cd" };  
boolean [] edicao = {false, true};

if (!(RsC1.next()))
{
   JOptionPane.showMessageDialog(null, "Nenhum CD cadastrado","Informação",JOptionPane.WARNING_MESSAGE);
} 
else { RsC1.previous(); }
			        	
while (RsC1.next())
{
   cd = RsC1.getString("Nome_CD");
           		
   dados.add(new String[] { cd });
		  		
} 
	        
SimpleTableModel modelo = new SimpleTableModel(dados, colunas, edicao);
tabela = new JTable(modelo);
tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

e está com o seguinte erro:

ListaCd.java:82: cannot resolve symbol
symbol  : class SimpleTableModel 
location: class ListaCd
                SimpleTableModel modelo = new SimpleTableModel(dados, colunas, edicao);
                ^
ListaCd.java:82: cannot resolve symbol
symbol  : class SimpleTableModel 
location: class ListaCd
                SimpleTableModel modelo = new SimpleTableModel(dados, colunas, edicao);
                                              ^
2 errors

Sou meio leigo nessas coisas, mau ae.

Valeu.

A classe SimpleTableModel não é da API padrão do Java. Provavelmente tem o código dela no artigo. Veja lá!

Haaaaaaaaaa, agora sim, entendi.

Faltou a classe SimpleTableModel (SimpleTableModel.java).

Agora tá funcionando.

Valeu danieldestro.