Pessoal … to querendo excluir um item de um jlist … mas nao to conseguindo…
Os itens desse jlist foram adicionados por uma JcomboBox…
eis o codigo da remocao e o erro abaixo:
listaPalavrasChave.remove(listaPalavrasChave.getSelectedIndex());
esse evento e disparado por um botao , quando clico … quero remover o item q selecionei na lista.
o erro :
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -1
Isso
listaPalavrasChave.getSelectedIndex()
está retornando -1, ou seja, não está nd selecionado…
Coloque assim:
if(listaPalavrasChave.getSelectedIndex() >= 0){
listaPalavrasChave.remove(listaPalavrasChave.getSelectedIndex());
}
ta dando o memso erro so qe com o indice 1
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1
Acho que isso resolve…
if(listaPalavrasChave.getSelectedIndex() >= 0 && listaPalavrasChave.getSelectedIndex() < listCliente.getModel().getSize() ){
listaPalavrasChave.remove(listaPalavrasChave.getSelectedIndex());
}
Cara parou de dar erro , mas nao ta retirando da lista.
os itens continuam aparecendo la.
renanbarros,
dá uma olhada nesse link abaixo:
http://java.sun.com/docs/books/tutorial/uiswing/components/list.html
Uma pergunta, você está usando que Objeto para carregar os elementos na JLIst? ListModel, Object[] ou Vector.
No link que te passei tem exemplo de como fazer.
Uma ilustração:
[code]listModel = new DefaultListModel();
listModel.addElement(“Debbie Scott”);
listModel.addElement(“Scott Hommel”);
listModel.addElement(“Alan Sommerer”);
list = new JList(listModel);[/code]
Agora, para remover um item do tipo ListModel:
int index = list.getSelectedIndex();
listModel.remove(index);
E não como você havia colocado:
Você remove o elemento do Objeto e não do Componente JList, como você querendo fazer.
Espero ter ajudado.
1 curtida
O problema e q ListModel em jva 1.5 nao tem AddElement
renanbarros,
ListModel é uma interface que a classe DefaultListModel implementa.
Olha direito o código que lhe passei:
[code]listModel = new DefaultListModel();
listModel.addElement(“Debbie Scott”);
listModel.addElement(“Scott Hommel”);
listModel.addElement(“Alan Sommerer”);
list = new JList(listModel);[/code]
A classe DefaultListModel tem o método addElement.
Dá uma olhada aqui.
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/DefaultListModel.html
Você está fazendo confusão.
Qualquer coisa, se der, anexa o código aqui que ajeito e mando para você.
Na verdade so preciso de remover (por meio de um botao) os items que foram adicionados a essa lista pela combobox .
pode contrui um metodo de um botao que faca isso ??
lembrando ., quero retirar da lista os items que foram adicionados da seguinte forma no evento click da combo:
private void inserirLista(java.awt.event.ActionEvent evt) {
listapalavra.addElement((PalavraChave)cbPalavraChaveImagem.getSelectedItem());
listaPalavrasChave.setListData(listapalavra);
}
consegui… vlw mesmo… estava fazendo errado mesmo…rrs foi mal…
renanbarros,
segue anexo dois arquivos de exemplos que fiz aqui.
Espero que entenda.
Usei tanto a classe DefaultListModel quanto a Vector.
[quote=Petrônio Braga]renanbarros,
segue anexo dois arquivos de exemplos que fiz aqui.
Espero que entenda.
Usei tanto a classe DefaultListModel quanto a Vector.[/quote]
E ai Petrônio, tudo bem!?
Estava vendo o arquivo "JListDefaultListModel.java" e não resolveu porque está fazendo igual ao meu.
[b]EXPLICANDO-ME: [/b]Eu tb tenho uma lista, e incluo itens nele por ação de botão("[b]INCLUIR[/b]"), e excluo-os por outro botão("[b]EXCLUIR[/b]").
Meu botão EXCLUIR está funcionando normalmente, mas só pra itens separadamente (clico no item e clico no botão EXCLUIR.
Se selecionar (usando [b]SHIFT[/b]) vários itens e clicar no botão só apaga o 1º item selecionado.
Como alterar meu código?! Pode me ajudar?! :? :wink:
SEGUE O CÓDIGO DO BOTÃO “EXCLUIR”:
[b] //atribuindo ação do botão Excluir
butExc.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(list.getSelectedIndex() == -1) {
JOptionPane.showMessageDialog(null,"Não foi selecionado nenhum item a ser excluído!","zero itens selecionado",JOptionPane.ERROR_MESSAGE);
} else {
int var = JOptionPane.showConfirmDialog(null,"Deseja realmente excluir ?","Deseja realmente excluir ?",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
if(var == 0) {
model.remove(list.getSelectedIndex());
int index = list.getSelectedIndex();
if (model.getSize() == 0) {
butExc.setEnabled(false);
butFin.setEnabled(false);
}
else if (list.getSelectedIndex() == model.getSize())
--index;
else {
list.setSelectedIndex(index);
list.ensureIndexIsVisible(index);
}
}
}
}
});[/b]
ola a todos!!
eu queria saber se o JList so guarda Strings. Tipo, eu fiz uma classe chamada Funcionario com varios atributos e queria armazenar um array de funcionario numa JList como se fosse uma colecao. pode ser??
autoresposta: pode sim acabei de testar
: D