JComboBox Model

4 respostas
gregorioarthur

Galera, estou implementando meu proprio combobox model, mas sergiu uma duvida!

Qual das duas interfaces implementar: MutableComboBoxModel ou ComboBoxModel?

No MutableComboBoxModel tenho estes metodos a mais:

@Override
    public void addElement(Object obj) {  }

    @Override
    public void removeElement(Object obj) {  }

    @Override
    public void insertElementAt(Object obj, int index) {  }

    @Override
    public void removeElementAt(int index) {  }

Alguem ai daria uma idéia? qual seria mais vantajoso, ou melhor, qual vai me dar mais agilidade no uso? ou os dois sao iguais? a diferenca entre eles é so os metodos para remover e adicionar itens isoladamente?

:?

4 Respostas

sf.marcius

depende do que vc quer:

o MutableComboBoxModel estende ComboBoxModel.

se vc quer criar um modelo que dê para adicionar itens dinamicamente após a criação do modelo (após dar new MeuModelo()), utilize MutableComboBoxModel

agora se os dados do modelo forem fixos, vc pode usar o ComboBoxModel, com os dados pré-embutidos no modelo, por exemplo.

eu recomendaria partir do seguinte:

public class MyComboBoxModel extends AbstractListModel implements MutableComboBoxModel {
   // implementar métodos requeridos
}
gregorioarthur

Esse AbstractListModel é o modelo implementado pelas listas do Java certo?

mas pq extender ele no meu modelo?

axo que essa eh minha ultima dúvida!

valew cara!

sf.marcius

hehe,

sim, mas os itens de um combobox não são nada mais que uma simples lista.
se vc analisar o código fonte da classe DefaultComboBoxModel (Acho que é esse o nome) verá que ele implementa MutableComboBoxModel e também estende extende AbstractListModel, porém, se nao me engano, ela usa Vector como estrutura de dados.
nessa classe ja tem uma boa base implementada e ela te “obriga” a implmentar mais uns métodos úteis ao teu modelo.
daeh fica moleza.
[]s

gregorioarthur

Cara, valew pelos esclarecimentos!

amanha vou implementar esse treco!

falow

Criado 13 de setembro de 2010
Ultima resposta 13 de set. de 2010
Respostas 4
Participantes 2