Não repetir valores no combobox

Bom dia!

Alguém sabe me dizer como não repetir valores nesse combobox que tenho montado? por cadastrar vários dados com um mesmo nome, na hora de puxar ele em um combobox, está puxando repetido

Segue código a baixo

>                this.EntradadadosPerfil.removeAllItems();
>         try {
>             Class.forName(driver);
>             Connection con = DriverManager.getConnection(url, user, pass);
>             Statement Sent = con.createStatement();
>             ResultSet rs = Sent.executeQuery("Select * from Cadastro_Testes");
>             
>             while (rs.next()) {
>                 this.EntradadadosPerfil.addItem(rs.getString("TCPERFIL"));
>                 
>             }
>         } catch (Exception e) {
>             JOptionPane.showMessageDialog(null, e);
>         }
>     }

Eu costumo montar a comboBox com uma lista de objetos, onde eu carrego uma List, depois jogo ela pra combo!

Segue um exemplo, preenchendo uma lista de cores pra colocar na comboBox:

public List<ModCadCor> retornaListCores() {
        
        List<ModCadCor> list = new ArrayList<>();
        ModCadCor modelo;
        
        sql.delete(0, sql.length());
        sql.append(" SELECT CODCOR, NOMCOR FROM CADCOR ");
        sql.append(" ORDER BY CODCOR ASC ");
        super.executeSQL(sql.toString());
        
        try {
            while (super.resultset.next()) {
                modelo = new ModCadCor();
                modelo.setCodcor(super.resultset.getInt("CODCOR"));
                modelo.setNomcor(super.resultset.getString("NOMCOR"));
                list.add(modelo);
            }
        } catch(Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao localizar Cores: " + e);
        }            
        return list;
    }

Pra preencher na comboBox eu uso este método:

public void carregarCombo(JComboBox combo, List<T> lista) {
        DefaultComboBoxModel comboModel = (DefaultComboBoxModel) combo.getModel();
        combo.setModel(comboModel);
        try {
            /*assim como é feito numa JTable, temos o DefaultComboBoxModel que é o model do JComboBox
              removendo todos os elementos do combo*/
            comboModel.removeAllElements();
            /*percorrendo a lista para inserir os valores no combo*/
            for (int linha = 0; linha < lista.size(); linha++) {
                /*adicionando a categoria no combo*/
                comboModel.addElement(lista.get(linha));
            }
        } catch (Exception e) {
            comboModel.removeAllElements();
        }
    }

Eu já prefiro criar meu próprio modelo para renderizar o que quiser, sem precisar jogar elementos de uma lista para outra, veja:

public void carregarCombo(JComboBox<String> combo, List<TipoDeDado> lista) {
	combo.setModel(new DefaultComboBoxModel<String>() {

		@Override
		public int getSize() {
			return lista.size();
		}

		@Override
		public String getElementAt(int index) {
			TipoDeDado objeto = lista.get(index);
			return objeto.getCampoDesejado();
		}
	});
}
1 curtida