Busca dados no access e lista num JComboBox

Estou tentando buscar os nomes em uma tabela access e jogar esses dados em um JCombBox.
Estou tentando fazer assim, mas aparecem endereços de memória no JcomboBox.
Alguma idéia de como fazer isso? Não precisa ser assim como está no código. Contatnto que funcione…
Abraço


package grafico;

import BancoDados.Conexao;
import cense.Adolescente;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import DAO.*;
import java.awt.Dimension;
import javax.swing.JComboBox;

public class BuscaAdolescente extends javax.swing.JFrame {

public Vector listaAdolescente() {
    try {
        PreparedStatement comandoSQL;
        comandoSQL = Conexao.getInstance().prepareStatement("select Nome from TabCadInterno");
        ResultSet rs = comandoSQL.executeQuery();
        Vector vAdolescentes = new Vector();
        while(rs.next()){
            Adolescente adolescente = new Adolescente();
            adolescente.setNome(rs.getString("Nome"));
            vAdolescentes.addElement(adolescente);
            jcbAdolescente.addItem(vAdolescentes);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

}

Supondo ser jcbAdolescente seu javax.swing.Jcombobox …

 while(rs.next()){
Adolescente adolescente = new Adolescente();
adolescente.setNome(rs.getString("Nome"));
vAdolescentes.addElement(adolescente);
jcbAdolescente.addItem(vAdolescentes);
} 

2 erros:

  1. observe que esse loop adiciona o vetor de adolescentes toda vez que é executado! Não existe em jcombobox um additem que aceite um vector, ele deveria estar recebendo o objeto adolescente

  2. O que vc queria cara? que o java adivinhasse que o atributo nome do adolescente fosse mostrado na lista do combobox?? muito pretencioso ñ!!??
    O que vc tem que fazer é redefinir o método toString que a classe Adolescente herda de Object (já ouviu falar nisso né?) e o fazer ele retorna o nome do individuo. Assim quando o jcombobox for adicionar o objeto na lista, antes ele questiona o objeto se ele tem um toString personalizado, se tiver ele o chama se ñ ele aceita a implementação padrão que se ñ me engano é o nome da classe, arroba, endereço de memória do objeto

[color=darkblue][b]Exatamente malonne,

vc naum deve adicionar uma referencia para o objeto na combo e sim o que vc quer que apareça,
por exemplo se vc quer que apareça o atributo nome, vc usa o getter desse atributo para adicionar os nomes na combo…

qualquer duvida poste…

[/b][/color]

pq ñ? o código fico mais enxuto, apenas redefina toString. Isso é desperdício de código

Ok Galera!
Mas e aí?
Alguma dica de como devo fazer? Estou começando agora e precisava de umas dicas!
Abraço

Mudei pra isso, mas continua retornando um endereço de memória!
Alguma dica?!

public Vector listaAdolescente() {
        try {
            PreparedStatement comandoSQL;
            comandoSQL = Conexao.getInstance().prepareStatement("select Nome from TabCadInterno");
            ResultSet rs = comandoSQL.executeQuery();
            while (rs.next()) {
                Adolescente adolescente = new Adolescente();
                adolescente.setNome(rs.getString("Nome"));
                jcbAdolescente.addItem(adolescente);
                System.out.println(adolescente);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

 package grafico;

import BancoDados.Conexao;
import cense.Adolescente;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import DAO.*;
import java.awt.Dimension;
import javax.swing.JComboBox;


public class BuscaAdolescente extends javax.swing.JFrame {

public Vector listaAdolescente() {
try {
PreparedStatement comandoSQL;
comandoSQL = Conexao.getInstance().prepareStatement("select Nome from TabCadInterno");
ResultSet rs = comandoSQL.executeQuery();
Vector vAdolescentes = new Vector();
while(rs.next()){
Adolescente adolescente = new Adolescente();
adolescente.setNome(rs.getString("Nome"));
vAdolescentes.addElement(adolescente);
jcbAdolescente.addItem(adolescente.getNome());
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}

} 

veja q minha mudança foi na linha 28