Adicionar Strings à um JList [RESOLVIDO]

10 respostas
Suellen_Susu

Boa tarde pessoal!

Tenho a seguinte questão pata resolver:

Tenho um JList, JLabel e um JButton. Esse meu jButton tem uma conexão com o banco de dados e pega registros do msmo (ou melhor, sorteia um registro, q nesse caso, é uma palavra). Ao sortear essa palavra ele exibe neste label. Isso ocorre até acabarem os registros.
Porém, precisava q a cada palavra mostrada no label, ele a jogasse tmb no list, tendo no final do jogo, a lista com todas as palavras do banco…

Como posso fazer isso?

desde já, obrigada!! ;D

10 Respostas

nel

Oi Suellen.

Você não pode criar uma lista estatica e a cada vez que o banco retornar o valor para ser apresentado em seu JLabel você adicionar esse mesmo valor na lista?
Quando todo esse processo terminar, você pode manipular a lista como quiser. Lembrando que após a manipulação da mesma, o ideal é zerar (.clear()) para evitar que acumule valores inexistentes.

guilherme.dio

Utilize um DefaultListModel

Suellen_Susu

nel:
Oi Suellen.

Você não pode criar uma lista estatica e a cada vez que o banco retornar o valor para ser apresentado em seu JLabel você adicionar esse mesmo valor na lista?
Quando todo esse processo terminar, você pode manipular a lista como quiser. Lembrando que após a manipulação da mesma, o ideal é zerar (.clear()) para evitar que acumule valores inexistentes.

Ohh Nel!! faz tempo q ñ nos falamos por msn!!!

Mas então, a idéia é exatamente essa q vc disse no primeiro parágrafo… mas a questão é q preciso mostrar pro meu usuário essa lista, compreende? por isso, ñ sei se uma lista estática resolveria o caso…

Obrigada querido… aguardo resposta… ;]

Vingdel

Oi, Suellen!

Legal te encontrar aqui de novo... rs

Vamos ao que interessa.

Acredito que sua lista esteja parecida com isto:

JList lista;
DefaultListModel modelo = new DefaultListModel();

lista = new JList(modelo);
lista.setVisibleRowCount(10); // Qtd de Itens visíveis

Para você adicionar alguma coisa a sua JList você precisa usar o método addElement() de DefaultListModel.

Coloque assim no seu botão:
modelo.addElement( rs.getString( ... ));
sendo rs a variável do seu ResultSet.

Parecido com o que você faz com o seu JLabel.

Caso não tenha entendido, poste o seu código aqui que veremos como te ajudar de forma mais clara.

Até mais!

Suellen_Susu
Vingdel:
Oi, Suellen!

Legal te encontrar aqui de novo... rs

Vamos ao que interessa.

Acredito que sua lista esteja assim:

JList lista;
DefaultListModel modelo = new DefaultListModel();

lista = new JList(modelo);
list.setVisibleRowCount(10); // Qtd de Itens visíveis

Para você adicionar alguma coisa a sua JList você precisa usar o método addElement().

Coloque assim no seu botão:
modelo.addElement( rs.getString( ... ));
sendo rs seu a variável do seu ResultSet.

Parecido com o que você faz com o seu JLabel.

Caso não tenha entendido, poste o seu código aqui que veremos como te ajudar de forma mais clara.

Até mais!

Olá Delano!!! nossa, fazia tempo tmb q ñ conversávamos...

entendi o q vc me disse e consegui implementar aqui o código...

só reduzi um pouko ele, e por ultimo, nas propriedades do jList, chamei como:

jList1.setModel(modelo);

Só deu um probleminha: depois q ele exibe a ultima palavra e joga na lista e mostra ao usuário, se eu clicar no botão de novo, ele continua adicionando essa msma palavra a lista... tem algum tipo de comparação q posso realizar com o banco, em cima dessa lista, pra ele ñ adicionar mais essa ultima palavra, ou algum comando do gênero?!

Obrigada Delano!!! aguardo resposta... ;]

nel

Não tem o método contains(String) ?
Dessa forma, caso a palavra já estivesse inserida na lista você não a adicionava :slight_smile:

Vingdel

Não entendi completamente esse último problema.

Você está querendo dizer que sempre que você clica no botão, está sendo adicioada a mesma palavra ou você está dizendo que ela ainda tem chance de ser adicionada?

Esclareça melhor o seu problema.

Se esse botão que seta o texto do JLabel e adiciona o elemento ao JList também faz a consulta ao banco acredito que você esteja querendo descartar a chance de a mesma String ser adicionada novamente.

Posta o trecho de código da ação do botão aqui para nós vermos.

Até mais!

Suellen_Susu

Vingdel:
Não entendi completamente esse último problema.

Você está querendo dizer que sempre que você clica no botão, está sendo adicioada a mesma palavra ou você está dizendo que ela ainda tem chance de ser adicionada?

Esclareça melhor o seu problema.

Se esse botão que seta o texto do JLabel e adiciona o elemento ao JList também faz a consulta ao banco acredito que você esteja querendo descartar a chance de a mesma String ser adicionada novamente.

Posta o trecho de código da ação do botão aqui para nós vermos.

Até mais!

éh, realmente é o q vc disse Delano… desejo querendo descartar a chance de a mesma String ser adicionada novamente no jList…

Vingdel
Então, antes de adicionar, use contains() como bem falou o nel, para testar se o elemento já existe no DefaultListModel.
if(!modelo.contains( rs.getStrint( ... ) )){; // Testa se o tiem existe na lista
	modelo.addElement(rs.getStrint( ... ));

}
Veja se isso dá certo e resolve o que tu quer.
Suellen_Susu

Obrigada Delano, era exatamente isso!!

joguei direto desta forma:

if(!modelo.contains(palavraBanco))// Testa se o item existe na lista { modelo.addElement(palavraBanco); }

Criado 24 de outubro de 2011
Ultima resposta 25 de out. de 2011
Respostas 10
Participantes 4