Preencher um JList apartir de uma tabela de um BD

Estava usando o List mas tenho recebido sempre a msg de deprecation, quero mudar para o objeto JLIST mas não consigo preenche-lo usando com origem para a lista uma tabela em um banco (estou testando com access)

POR FAVOR me enviei o trecho exato de como posso preencher, usem como exemplo uma tabela chamada AGENDA e o campo chamado NOME só para exemplificar, já tentei de tudo. com o List eu consigo mas quero usar o JList.

Fico a maior parte do tempo no trabalho, quem puder responder, além de responder aqui, me enviem por EMail: aswil@embratel.com.br



Muito Grato pela atenção, Wilson.

É o seguinte, estude esse código:



//Exemplo 18.3: AlimentaComboList.java

//Esse programa exibe os registros do banco de dados Cidade.mdb

//em um JComboBox e um JList

import java.awt.;

import java.awt.event.
;

import java.sql.;

import java.util.
;

import javax.swing.*;



public class AlimentaComboList extends JFrame

{

private JButton jbSair;

private JPanel jpDados, jpBotoes;

private Container c;

private Connection conexao;

private Statement status;

private ResultSet rs;

private ResultSetMetaData rsmd;

private JComboBox jcbTeste;

private JList jListTeste;

String nome[];



public AlimentaComboList()

{

super("Preenchendo um JComboBox e um JList com dados");

int nRegistros = quantidadeRegistros();

montaDados(nRegistros);

jcbTeste = new JComboBox(nome);

jListTeste = new JList(nome);

c = getContentPane();

jpDados = new JPanel();

jpDados.add(jcbTeste);

jpDados.add(jListTeste);

jbSair = new JButton("Sair");

jbSair.addActionListener

(

new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

desconectar();

System.exit(0);

}

}

);

jpBotoes = new JPanel();

jpBotoes.setLayout(new GridLayout(1, 2));

jpBotoes.add(jbSair);

addWindowListener

(

new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

desconectar();

System.exit(0);

}

}

);

c.add(jpDados, BorderLayout.CENTER);

c.add(jpBotoes, BorderLayout.SOUTH);

setSize(300, 300);

show();

}



public void montaDados(int quant)

{

try

{

String consulta = "Select * from tblCidade order by nome_tblCidade";

conectar(consulta);

if(!rs.next())

{

JOptionPane.showMessageDialog(this, "Não há registros", "Tabela vazia", JOptionPane.ERROR_MESSAGE);

return;

}

int i = 0;

nome = new String[quant];

do

{

nome[i] = rs.getString(2);

i++;

}while(rs.next());

}

catch(SQLException sqlex)

{

System.err.println("Erro na construcao da tabela");

}

}



public int quantidadeRegistros()

{

int i = 0;

try

{

String consulta = "Select * from tblCidade";

conectar(consulta);

if(!rs.next())

{

JOptionPane.showMessageDialog(this, "Não há registros", "Tabela vazia", JOptionPane.ERROR_MESSAGE);

return 0;

}

do

{

i++;

} while(rs.next());

}

catch(SQLException sqlex)

{

System.err.println("Erro na construcao da tabela");

}

return i;

}



public void conectar(String cons)

{

String endereco = "jdbc:odbc:Cidade";

String usuario = "";

String senha = "";

try

{



Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

conexao = DriverManager.getConnection(endereco, usuario, senha);

status = conexao.createStatement();

rs = status.executeQuery(cons);

rsmd = rs.getMetaData();

}

catch(ClassNotFoundException cnfe)

{

System.err.println("Nao carregou o driver JDBC/ODBC");

cnfe.printStackTrace();

System.exit(1);

}

catch(SQLException sqlex)

{

System.err.println("Conexao desabilitada");

sqlex.printStackTrace();

System.exit(1);

}

}



public void desconectar()

{

try

{

conexao.close();

}

catch(SQLException sqlex)

{

System.err.println("Erro ao fechar");

}



}



public static void main(String args[])

{

new AlimentaComboList();

}

}

Ahhh, e considere o seguinte Banco de dados:



Cidade.mdb



Com a seguinte tabela:



tblCidade



Com os seguintes campos:



codigo_tblCidade Tipo: Número Chave Primária: true

nome_tblCidade Tipo: Text Chave Primária: false

uf_tblCidade Tipo: Text Chava Primária: false



Na hora de executar o código não esqueça de criar a conectividade JDBC/ODBC.