Inserindo valor na lista em tempo de execução

5 respostas
G

Oi gente!

Estou tentando inserir um valor em uma lista em tempo de execução:

DefaultListModel list = (DefaultListModel) gameRoomsList.getModel(); list.addElement(item.toString()); gameRoomsList.setModel(list);

mas não estou conseguindo! O compilador não gera nenhum erro! Qual seria o problema?

5 Respostas

ViniGodoy

Não é necessário chamar o setModel.
Poste o resto do seu código.

danilocmiranda

Aproveitando a dúvida do colega vou postar a minha que pode ser que tenha a ver…

Seguinte:
Tenho uma List com ítens que preciso incrementar valores ou retirá-los.
O problema é que se eu fizer direto desta forma obtenho um Exception Runtime

ObjetoX meuObjeto;// Já vem instanciado e populado
List<ObjetoX> minhaLIst; //List com ObjetoComList, um objeto que tem como um dos atributos uma List<ObjetoX> ja instanciado e populado
for (ObjetoX meuObjetoX : minhaList) {
					if (!meuObjetoX.equals(meuObjeto)) {
						minhaList.add(meuObjeto);
						System.out.println("Objeto adicionado!");
					} else {
						System.out.println("Objeto já existe na lista");
					}
				}

Ele adiciona o Objeto a List mas ao tentar dar mais uma volta no for que aparece a Exception.

Qual a melhor maneira de verificar a existencia de um Objeto numa List de Objetos e editar esta mesma lista adicionando um novo objeto, editando ou removendo?

Abraços

drsmachado

danilocmiranda:
Aproveitando a dúvida do colega vou postar a minha que pode ser que tenha a ver…

Seguinte:
Tenho uma List com ítens que preciso incrementar valores ou retirá-los.
O problema é que se eu fizer direto desta forma obtenho um Exception Runtime

ObjetoX meuObjeto;// Já vem instanciado e populado
List<ObjetoX> minhaLIst; //List com ObjetoComList, um objeto que tem como um dos atributos uma List<ObjetoX> ja instanciado e populado
for (ObjetoX meuObjetoX : minhaList) {
					if (!meuObjetoX.equals(meuObjeto)) {
						minhaList.add(meuObjeto);
						System.out.println("Objeto adicionado!");
					} else {
						System.out.println("Objeto já existe na lista");
					}
				}

Ele adiciona o Objeto a List mas ao tentar dar mais uma volta no for que aparece a Exception.

Qual a melhor maneira de verificar a existencia de um Objeto numa List de Objetos e editar esta mesma lista adicionando um novo objeto, editando ou removendo?

Abraços


Isto se dá devido às limitações da linguagem.
Explico, o forEach (iterar sobre a List, com o for(Object o: ListObjects)) não tem suporte para ações de incluir ou excluir elementos.
Se quer fazer isto, use o bom o velho for(inicio; boolean; andamento) ou opte por um outro tipo de estrutura (no java 6, Iterator).

Há alguns posts no guj sobre isto.

danilocmiranda

@drsmachado

Valeu pela informação.

Encontrei este post http://www.guj.com.br/java/48075-qual-e-a-vantagem-do-iterator que ao que tudo indica vai me ajudar.

Margel_Douglas
List<String> strings = new ArrayList<String>();
//ADICIONANDO AO LIST
for (int i = 0; i < 10; i++) 
	strings.add("Num: "+i);
//LISTANDO
for(String s:strings)
	System.out.println(s);
//REMOVENDO
for (int i = strings.size(); i > 0; i--) {
	if(strings.get(i-1).equals("Num: 5"))
		strings.remove(i-1);
}
System.out.println("----------------------------------");
//LISTANDO
for(String s:strings)
	System.out.println(s);

só pra agregar mais um exemplo ao post :wink:

Criado 30 de abril de 2011
Ultima resposta 2 de jun. de 2011
Respostas 5
Participantes 5