Olá, estou fazendo umas GUI´s pelo netbeans e ao tentar popular um JList com valores do banco de dados, esta é preenchida com valores do tipo com.br.sistema@4d481.
Ao clicar em um dos itens da lista são preenchidos os campos da tela que correspondem aos campos da tabela e nesse caso os dados tipo Id, nome, etc são mostrados corretamente. A lógica de conexão com o banco e recuperação estão funcionando.
Como faço para que na JList seja mostrado da seguinte forma?
1 - José Maria
2 - Maria José
etc.
e não:
com.br.sistema@4d481
com.br.sistema@258b7
com.br.sistema@922r1
etc.
Abaixo seguem trechos do código para que entendam o que fiz, lembrando que o código da JList é criado pelo netbeans e de alguma forma é setada no JScrollPane.
Já fiz várias tentativas e só dessa forma que consegui mostrar algo na lista que ao ser clicado em algum item, preencha os campos da tela.
Desde já agradeço.
O construtor da classe
public ListaClientesGUI() {
initComponents();
listCategoryModel = new DefaultListModel();
ListHandler listHandler = new ListHandler();
jListListaClientes.addMouseListener(listHandler);
}
O método que popula a lista
private void preencheLista() throws SQLException{
ClientesDaoImplementation dao = new ClientesDaoImplementation();
jListListaClientes.clearSelection();
Collection clientes = dao.obterListaClientes(); //obtém a lista o banco de dados
Iterator it = clientes.iterator();
while(it.hasNext()){
Clientes cli = (Clientes) it.next();
listCategoryModel.addElement(cli);
jListListaClientes.setModel(listCategoryModel);
}
}
Preenche os campos da tela ao clicar em um item da lista, mas só funciona quando está listado com.br.sistema@5542
private void preencheCampos(Clientes cli){
if(cli != null){
//seta os campos da tela.
jTextFieldIdCliente.setText(new Integer(cli.getIdCliente()).toString());
jTextFieldNomeCliente.setText(cli.getNomeCliente());
jTextFieldEndereco.setText(cli.getEndereco());
jTextFieldSexo.setText(cli.getSexo());
}
}