String[] data = {"one", "two", "three", "four"};
JList myList = new JList(data);
Sobresceva o método toString no sua classe User e coloque para retornar o login ou o nome.
[]´s
Eduardo_Rebou_s
aeww era isso mesmo valew galera…
muito obrigado mesmo.
abraço
Eduardo_Rebou_s
ou tenho mais uma duvida…
seguinte… tem como fazer o index da list ser igual o id do meu db??
pq eu quero que quando click no item da list ele traga toda a informação do item.
desde já agradeço
Eduardo
M
marcobiscaro2112
Eduardo Rebou?s:
ou tenho mais uma duvida…
seguinte… tem como fazer o index da list ser igual o id do meu db??
pq eu quero que quando click no item da list ele traga toda a informação do item.
desde já agradeço
Eduardo
Bom, a informação já será resgatada pois existe um campo no objeto que represenda seu código.
Mas, se não me engano, a única maneira de garantir que os dados fiquem em ordem é implementar seu próprio ListModel e guardar a os objetos em ordem em uma lista lincada.
Eduardo_Rebou_s
Bom dia Marco,
ou teria como você postar um exemplo é que sou iniciante em java então não sei utilizar esse ListModel…
Vlw
Eduardo
M
marcobiscaro2112
Criar ListModels não é uma tarefa das mais triviais (apesar que quando você entende, fica simples). Vou postar um exemplo que acho que vai te ajudar:
Lembre-se que para que tudo isso funcione, sua classe User deve implementar Comparable.
M
marcobiscaro2112
Caramba… não dá pra colocar a definição da classe de forma correta aqui no fórum! Aparece um ">" a mais (depois de Comparable) do nada! :shock:
Olha só:
SortedListModel<T extends Comparable>
Isso está errado!
De qualquer forma, aqui vai o correto em anexo.
Eduardo_Rebou_s
Opa vlw Marco vou fazer aqui e posto se deu certo, vlw mesmo para a atenção.
abraço
Eduardo
Eduardo_Rebou_s
e aew Marco olha eu te chateando aqui denovo,
então na parte que declaro a variavel
private SortedListModel<User> model;
aparece o erro:
type parameter package.User is not within is bound
a minha classe User com o Comparable
packageprojetos1.logica;importjava.lang.ClassCastException;importjava.util.Comparator;publicclassUserimplementsComparable{publicStringtoString(){returnnomeUsuario;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetLogin(){returnlogin;}publicvoidsetLogin(Stringlogin){this.login=login;}publicStringgetSenha(){returnsenha;}publicvoidsetSenha(Stringsenha){this.senha=senha;}publicStringgetNivel(){returnnivel;}publicvoidsetNivel(Stringnivel){this.nivel=nivel;}publicStringgetNomeUsuario(){returnnomeUsuario;}publicvoidsetNomeUsuario(StringnomeUsuario){this.nomeUsuario=nomeUsuario;}publicStringgetSetorUsuario(){returnsetorUsuario;}publicvoidsetSetorUsuario(StringsetorUsuario){this.setorUsuario=setorUsuario;}publicStringgetValidade(){returnvalidade;}publicvoidsetValidade(Stringvalidade){this.validade=validade;}privateintid;privateStringlogin;privateStringsenha;privateStringnivel;privateStringnomeUsuario;privateStringsetorUsuario;privateStringvalidade;publicintcompareTo(ObjectanotherUser)throwsClassCastException{if(!(anotherUserinstanceofUser))thrownewClassCastException("Objeto do Tipo User Esperado");intanotherUserId=((User)anotherUser).getId();returnthis.id-anotherUserId;}publicstaticComparatorNomeUsuarioComparator=newComparator(){publicintcompare(Objectuser,ObjectanotherUser){StringnomeUsuario1=((User)user).getNomeUsuario().toUpperCase();StringnomeUsuario2=((User)anotherUser).getNomeUsuario().toUpperCase();returnnomeUsuario1.compareTo(nomeUsuario2);}};}
(achei esse codigo no google então num sei se tá certo) :oops:
Abraço vlw :)
Eduardo
M
marcobiscaro2112
Sua classe deve implentar Comparable. Ela ficará assim:
ou vlw mesmo… funcionou para adicionar… mais assim no caso se eu quiser no caso colocar o id no index tenho
que colocar o model.add() ou no model.addAll() vai?
Eduardo
M
marcobiscaro2112
Não entendi muito bem sua pergunta…
Eduardo_Rebou_s
ex: “Eduardo” tem o id 3,
como eu faria para colocar o “Eduardo” no index 3 sem ter os outros 3 nomes antes.
se não for possivel teria como eu jogar na lista o nome e o id?
se sim eu faria isso usando o model.add(nomeUsuario, id), ou posso colocar o model.addAll(dao.listaFiltroId(u1))
se for o model.addAll() como eu faço para pegar o Id e o Nome?
Grato
Eduardo
M
marcobiscaro2112
Mas nesse exemplo, se você não tem os dois primeiros usuários, como o terceiro ficaria no índice 3? Ficaria em “vácuo” em cima? Não parece muito bom…
Agora, lembre-se que o modelo suporta o seu objeto User (Java é orientado a objetos, então nada mais óbvio). A exibição é feita por um Redenrer (mas acho que fica fora do escopo por enquando). Logo, basta usar o addAll para inserir os usuários que vieram do banco de dados.
O que será mostrado no JList será o retorno do método toString() do seu User. Portanto, se você quiser mostrar o código também pode fazer algo como:
// classe UserpublicStringtoString(){returnid+" - "+nome;}
Eduardo_Rebou_s
humm… então eu sei que vc já deve ter explicado isso, mais só uma duvida… depois prometo que paro de te encher hehe
então no caso não tem como eu manipular a array e pegar o id? tipo mesmo que não apareça no listbox, só para eu guardar numa variável ou deixar a array aberta mesmo