Preencher um JList apartir de uma tabela de um BD

2 respostas
W

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: [email removido]



Muito Grato pela atenção, Wilson.

2 Respostas

H
É 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.<em>;


import java.awt.event.</em>;


import java.sql.<em>;


import java.util.</em>;


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();


   }


}
H

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.

Criado 21 de fevereiro de 2003
Ultima resposta 1 de mar. de 2003
Respostas 2
Participantes 2