Problemas em excluir/limpar todos os elementos de um JList de uma só vez

7 respostas
B

Olá pessoal,

Como removo todos os elementos de um JList, sendo que um dos elementos está selecionado?

Procurei muito aqui no GUJ e nos mais variados forums internet a fora, e confesso que não encontrei nada que faça isso corretamente até agora.

Tentei assim:

modeloJList.removeAllElements();

e funciona, SE NENHUM ELEMENTO FOI SELECIONADO!
Porém, quando se seleciona algum elemento, dá uma exceção do tipo “out of bounds” e não deleta nada!

Tentei usar o metodo clearSelection(), mas ele só tira o foco do item selecionado e faz o método isSelectionEmpty() retornar true, porém o item permanece selecionado!

7 Respostas

F

modeloJList.clear();

B

Não adianta também, se algum item foi selecionado antes!

Antes de responder, por favor, testem!

B

a exceção que dá é a mesma dos métodos que eu havia tentado antes (inclusive tentei esse aí!).

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
F

Não adianta também, se algum item foi selecionado antes!

Antes de responder, por favor, testem!

Não ta achando que alguém aqui é teu empregado ne ? Nem todos temos tempo bem vontade de ficar testando coisa para os outros.
Mas dessa vez, testei e funcionou se não rolou posta todo teu código ai …

Sucesso

B

Não adianta também, se algum item foi selecionado antes!

Antes de responder, por favor, testem!

Não ta achando que alguém aqui é teu empregado ne ? Nem todos temos tempo bem vontade de ficar testando coisa para os outros.
Mas dessa vez, testei e funcionou se não rolou posta todo teu código ai …

Sucesso

Uai?!
Ficou ofendido?!
Cara eu já expliquei a situação! Crie um JList, encha de Items, selecione um e depois use esse método aí que você falou! NÃO VAI FUNCIONAR E VAI DISPARAR A EXCEÇÃO QUE CITEI!

A

O código postado pelo colega funcionou corretamente para mim, por favor teste os códigos antes de reclamar e tenha mais respeito com os colegas que abrem mão de seu tempo para tentar lhe ajudar.

import java.awt.BorderLayout;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;


public class JListTst extends JFrame {
	
	private void init() {
		JList list = new JList();
		final DefaultListModel dl = new DefaultListModel();
		list.setModel(dl);
		dl.addElement("TESTE 1");
		dl.addElement("TESTE 2");
		dl.addElement("TESTE 3");		
		JButton bt = new JButton("ok");		
		bt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                dl.clear();
            }
        });
		this.getContentPane().add(bt, BorderLayout.SOUTH);
		this.getContentPane().add(list, BorderLayout.CENTER);
		this.setSize(400,400);
		this.setVisible(true);			

	}
	
	public static void main(String[] args) {
		JListTst l = new JListTst();
		l.init();
	}

}
B

ok… desisto =/

Criado 2 de julho de 2008
Ultima resposta 6 de jul. de 2008
Respostas 7
Participantes 3