Eu creio que é algo simples, e apesar de eu ter procurado em vários lugares não achei então vou postar a dúvida aqui.
O que eu gostaria é de saber como remover um item de um JList(preciso remover todos na verdade) pelo NetBeans.
Eu vi que tem um método que remove determinado index, mas eu já tentei e não adianta.
Preciso na verdade que ao apertar um botão seja esvaziada a lista inteira.
Tentei isso no Netbeans:
for(int i = 0 ; i < jList1.getModel().getSize(); i++ ){
jList1.remove(i);
}
Mas o código dá IndexOutOfBounds…então logicamente há algo errado.
Vi algo sobre o DefaultListModel mas não me adiantou nada.
O que acontece é o seguinte, quando você remove o elemento 0 (na primeiro iteração)
O elemento 1, vai para a posição 0, já na segunda interação ele vai tentar remover um elemento q talvez não exista.
Se a sua lista tiver mais de 1 elemento em algum momento o seu código pode pedir para remover um indice que não existe mais…
Nao sei se eh tarde demais pra ajudar, sempre tem alguem que precisa disso :
Eu tive uma dor de cabeca pra trabalhar com as JLists. Tinha dois JLists, criei dois botoes um pra mover items do JList 1 para o segundo e o outro botao pra mover do segundo para o primeiro. Os meus Jlist tinham que permitir multi selecao tambem, fiz o seguinte :
addtoList.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (listPermission.isSelectionEmpty()) { JOptionPane.showMessageDialog(null, "No items selected","info", JOptionPane.INFORMATION_MESSAGE);
}
else {
Object[] obj = listPermission.getSelectedValues();
for(int i=0; i<obj.length; i++) {
listmodelgroup.addElement( obj[i] );
listmodel.removeElement( obj[i] );
}
}
}
});
“addtoList” eh o botao pra mover items do primeiro para o segundo JList.
“listpermission” eh a primeira JList usando o metodo getSelectedValues retorna a lista de objetos selecionados na lista, joguei para um array de Objects.
Depois so montei um loop neste array de Objects e removi o objeto do ListModel da primeira JList e adicionei no ListModel da segunda JList :
Para remover todos os items de um JList você pode remover do último para o primeiro, ou então remover o primeiro até que não haja mais itens na lista. OK?