Clone() DefaultListModel

4 respostas
F

Salve PJtas! :razz:

Me bateu uma dúvida ao lidar com o DefaultListModel. Não tenho conseguido repassar os dados armazenados de um para outro, sem a necessidade de utilizar uma estrutura de repetição.

Quando na tentativa de igualar um ao outro…

DefaultListModel listModel_Clone = new DefaultListModel(); DefaultListModel listModel_Original = new DefaultListModel(); ......... ............... listModel_Clone = listModel_Original;

todo tratamento que faço ao listModel_Clone, se aplica ao Original, algo que não quero. Esclarecendo, tudo que vejo a alterar no Clone, altera o Original.

A única forma foi através de estruturas de repetições passando elemento a elemento, coisa que queria descatar, visto que já possuo um listModel_Original devidamente preenchido.

for(int iPos = 0; iPos < listModel_Original.getSize(); iPos++) { listModel_Clone.addElement( listModel_Original.get( iPos ) ); }

Como não consegui uma solução e não achei nada a respeito até o momento, queria contar com ajuda de vocês para matar mais esta charada! :razz:

Bem… seria isso ai… algum vagalume para iluminar as idéias? :lol:

Abraço,
Fábio Heleno

4 Respostas

S

Olá,

não sei se ListModel é clonable, mas porque não tentar

listModel_Clone = listModel_Original.clone();

F

Já tentei! Mas DefaultListModel não dispõem da função clone().

Tentei usar Vector também, porém me deparei com o mesmo problema.

Só consigo clonar uma variável através de estrutura de repetição e isso deixa mais pesado a aplicação, porque de 1 variável, crio outras 5 que ainda passaram por classificações de tipo árvores, que acaba deixando muito lenta a aplicação.

Teria algum outro modo de clonar?

Abraço,
Fábio Heleno

S

Pelo sdk, DefaultListModel herda clone() de Object. Mas não adiantaria, pois só as referÊncias seriam duplicadas, não os objetos referenciados, coisa que você ja percebeu :wink:

Quem sabe DefaultListModel.copyInto(Object[])?

criaria um array, o que talvez ajudasse na performance.

Mas você quer mesmo duplicar uma lista de 16000 itens? Quem sabe mudando o enfoque não teria uma solução mais econômica?

F

Exatamente.

Quanto a passar para Object[], já havia tentado, até ai tranquilo, problema foi aplicar o array extraido a um novo DefaultListModel, de maneira única, sem utilização da estrutura de repetição.

Fiz uma modificações, agora ele me cria a quantidade de listas necessarias em único momento, assim quando preenche a primeira, já preenche o restante. Acho que ficou mais leve e economizou tempo.

Se tiver alguma dica, pode falar! Será bem vinda. Só lembrando que cada lista receberá uma classificação diferente. :wink:

Por enquanto vou usando essa ultima alternativa que encontrei.

Obrigado pelo toque…

Abraço,
Fábio Heleno

Criado 11 de novembro de 2004
Ultima resposta 14 de nov. de 2004
Respostas 4
Participantes 2