ComboBox populado duas vezes [RESOLVIDO]

Gente tenho o meu comboBox ta funcionando legal, mas naum sei pq ele puxa os dados duas vezes do Banco de Dados

[CODIGO]

[code]public void initComboBox(){
try {
ResultSet rs = super.getConnBD().getStm().executeQuery(“SELECT descricao FROM fn_ccusto”);

        if(rs.first()){
            do{
                this.addItem(rs.getObject(1));
            }
            while(rs.next());
        }
    }
    catch (SQLException ex){
        ex.printStackTrace();
    }
}[/code]

[CODIGO CLASSE PAI]

private DAOPai connBD = null;

    public ColunaComboBox(){
        connBD = new BancoDAO();
    }

    public DAOPai getConnBD() {
        return connBD;
    }

    public void listar(){
        for(int i = 0; i < this.getItemCount(); i++){
            System.out.println(this.getItemAt(i).toString());
        }
    }

[CLASSE DAOPAI]

package Classes.DAO;

import BancoDeDados.GerenciaConexaoBancoComDados;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DAOPai {

    protected StringBuilder constroiSql = null;
    protected SimpleDateFormat sdf = null;
    protected DateFormat formatador;
    protected ResultSet rs = null;
    protected Statement stm = null;
    protected GerenciaConexaoBancoComDados gcbd = null;

    public DAOPai(){
        gcbd = new GerenciaConexaoBancoComDados();
        constroiSql = new StringBuilder();
        sdf = new SimpleDateFormat("ddMMyyy");
        this.formatador = this.sdf;
        try {
            this.stm = gcbd.getBanco().getConexao().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        }
        catch (SQLException ex) {
            Logger.getLogger(DAOPai.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

PS.: Debuguei, mas não achei o erro! D:

fn_ccusto é uma função no bd, ou uma tabela?

Se for uma função teste o retorno dela, pois ela pode estar gerando os valores duplicados.

Eh uma tabela, sabe onde pode estar o erro?

cara… naum consegui enxergar o erro pois naum entendi algumas partes do seu codigo,
por exemplo:

onde o metodo initComboBox() é chamado?

quem é a classe BancoDao em

connBD = new  BancoDAO(); 

mas pra resolver o teu problema, tenta fazer o seguinte:

pelo visto a tua classe estende a JcomboBox, certo?

entaum no metodo initComboBox(); coloque o comando

this.removeAllItems();

antes do loop que preenche o combo, desta forma não importa quantas vezes o metodo initComboBox() é chamado, ele vai sempre limpar os dados antes de preencher novamente.

[code]public void popularComboAssunto(){

cad_acervo.executeSQL("select Descricao_Assunto from Assunto");
    try {
            Jcombo_Assunto.removeAllItems();//aqui ele remove as duplicidades
            Jcombo_Assunto.addItem("ESCOLHA UMA OPÇÃO");//aqui ele seta um valo default para a inicialização do combo
        while (cad_acervo.resultset.next()) {
            Jcombo_Assunto.addItem(cad_acervo.resultset.getString("Descricao_Assunto"));
        }
    } catch (SQLException ex) {
        Logger.getLogger(Cad_Acervo.class.getName()).log(Level.SEVERE, null, ex);
    }

}[/code]

Não sei pq, mas quando eu tiro o metodo initComboBox() da minha classe que extende uma classe q extende JComboBox, ele funciona sem duplicar os dados, mas naum entendi o pq?

classes completas:

Classe q extende ComboBox

package Classes.Modelos;

import Classes.DAO.DAOPai;
import javax.swing.JComboBox;

public class ColunaComboBox extends JComboBox{

    private DAOPai connBD = null;

    public ColunaComboBox(){
        connBD = new DAOPai();
    }

    public DAOPai getConnBD() {
        return connBD;
    }

    public void listar(){
        for(int i = 0; i < this.getItemCount(); i++){
            System.out.println(this.getItemAt(i).toString());
        }
    }
}

classe que extende ColunaComboBox

package Classes.Modelos;

import java.sql.ResultSet;
import java.sql.SQLException;

public class CombBoxTabCentCustGrupos extends ColunaComboBox {

    public CombBoxTabCentCustGrupos(){
        super();
        initComboBox();
        this.setEditable(true);
    }

    public void initComboBox(){
        try {
            ResultSet rs = super.getConnBD().getStm().executeQuery("SELECT descricao FROM fn_ccusto");
            if(rs.first()){
                do{
                    this.addItem(rs.getObject(1));
                }
               while(rs.next());
            }
        }
        catch (SQLException ex){
            ex.printStackTrace();
        }
    }

    @Override
    public void listar(){
        super.listar();
    }
}

classe DAOPai

package Classes.DAO;

import BancoDeDados.GerenciaConexaoBancoComDados;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class DAOPai {

    protected StringBuilder constroiSql = null;
    protected SimpleDateFormat sdf = null;
    protected DateFormat formatador;
    protected ResultSet rs = null;
    protected Statement stm = null;
    protected GerenciaConexaoBancoComDados gcbd = null;

    public DAOPai(){
        gcbd = new GerenciaConexaoBancoComDados();
        constroiSql = new StringBuilder();
        sdf = new SimpleDateFormat("ddMMyyy");
        this.formatador = this.sdf;
        try {
            this.stm = gcbd.getBanco().getConexao().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        }
        catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public DAOPai(SimpleDateFormat sdf, StringBuilder sb, GerenciaConexaoBancoComDados gcbd){
        this.constroiSql = sb;
        this.sdf = sdf;
        this.gcbd = gcbd;
        this.formatador = this.sdf;
        try {
            this.stm = gcbd.getBanco().getConexao().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        }
        catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public DAOPai(SimpleDateFormat sdf, StringBuilder sb){
        this.constroiSql = sb;
        this.sdf = sdf;
        this.gcbd = new GerenciaConexaoBancoComDados();
        this.formatador = this.sdf;
        try {
            this.stm = gcbd.getBanco().getConexao().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        }
        catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public GerenciaConexaoBancoComDados getGcbd() {
        return gcbd;
    }

    public ResultSet getRs() {
        return rs;
    }

    public Statement getStm() {
        return stm;
    }
}

Consegui resolver!