JCombobox.setSelectedItem(bairro) não funciona com objetos [RESOLVIDO]

Boa noite pessoal,

Estou um tanto irritado aqui já com um problema e, antes que comenter ou perguntem, informo que já vi os tópicos parecidos e nenhuma das soluções resolveu meu problema.

Tenho uma JComboBox onde eu adiciono uma lista de objetos.
Já alterei o toString() para que na comboBox apareça o nome do bairro. O problema é que na lista existem bairros com nomes iguais (não me perguntem o porquê rs) e quando eu faço setSelectedItem(bairro) ele deixa selecionado o primeiro bairro com o nome igual, sendo que as vezes é um bairro que ta no quase no final da lista.
Já consegui recuperar o índice do bairro correto através do método indexOf(bairro), ele retorna correto, mas quando faço setSelectedIndex(index) ele ignora o ‘index’ quando ele encontra um bairro com o nome igual antes.

Alguém pode me ajudar nisso pelo amor de Deus?! Já tentei um monte de coisa, tenho minha comboBoxModel aqui, já tentei de tudo e nada deu certo!!!

public class BairroVO {
	private int id;
	private String nome;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}

	public String toString(){
		return nome;
	}
}

AE, RESOLVI DA SEGUINTE MANEIRA:

                                MyComboBoxModel model =  (MyComboBoxModel) gui.bairro.getModel();
				int x = model.getIndexOf(cliente.getBairro());
				gui.bairro.setSelectedItem(gui.bairro.getItemAt(x));  
				model.setSelectedItem(cliente.getBairro());

Também sobreescrevi os métodos de DefaultComboBoxModel:

	public int getIndexOf(Object anObject) {
		for(int i=0; i<objects.size(); i++)
			if(((BairroVO) anObject).getId() == ((BairroVO) objects.get(i)).getId())
				return i;
		return 0;
	}



	public void setSelectedItem(Object anObject) {
		if ((selectedObject != null && !selectedObject.equals( anObject )) ||
				selectedObject == null && anObject != null) {
			for(int i=0; i<objects.size(); i++)
				if(((BairroVO) anObject).getId() == ((BairroVO) getElementAt(i)).getId()){
					selectedObject = getElementAt(i);
					fireContentsChanged(this, -1, -1);
				}
		}
	}