JTable

4 respostas
D

Olá pessoal!

Meu método de busca de dados no BD retorna uma List. Quero colocar os dados em uma JTable. Executando o código que fiz, recebo isso:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: model.Palavras cannot be cast to java.util.Vector

Vejam o que eu fiz.

Primeiro a classe Control que recebe os dados do banco.

public List<Palavras>  buscar() {
		try {
			palavras = new Vector<Palavras>();
			PalavraDAO dao = new PalavraDAO();
			palavras = dao.buscarDAO();
				
			if (palavras == null || palavras.size() == 0) {
				JOptionPane.showMessageDialog(null, "Não há dados no banco!");
			} else {
				JOptionPane.showMessageDialog(null, "Recebeu dados!");
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return palavras;
	}

Agora a classe para exibir a tabela.

public class Tabela extends JFrame {


	public Tabela(List<Palavras> pl) {
		JTable tabela = new JTable();
		Vector<String> col = new Vector<String>();
		col.add("Palavra");
		col.add("Traducao");
		col.add("Idioma");

		Palavras p = new Palavras();
		Vector<String> v = new Vector<String>();
		for (int a = 0; a < pl.size(); a++) {
			p = pl.get(a);
			v.add(p.getPalavra());
			v.add(p.getTraducao());
			v.add(p.getIdioma());
		}
		DefaultTableModel dtm = new DefaultTableModel(v, col);
		tabela.setModel(dtm);
		getContentPane().add(tabela);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

Não sei se é a melhor forma para fazer isso, se alguem puder me ajudar!
Obrigado

4 Respostas

leoviniga

Imagino que o problema seja pelo fato de você adicionar as colunas como um Vector…faça um array de Strings pra ver…

String[] colunas = new String[] {"Palavra","Tradução","Idioma"};
leoviniga

Mais uma coisa…não use Vector, não tem mais utilidade depois que criaram a Collections, use ArrayList.

ViniGodoy

Na verdade, é uma péssima idéia usar o DefaultTableModel também…

erico_kl

se vc quiser o seu TableModel orientado à Strings :shock:, utilize DefaultTableModel. Se vc quer orientado à objetos, crie o seu ou utilize ObjectTableModel

Criado 29 de abril de 2011
Ultima resposta 30 de abr. de 2011
Respostas 4
Participantes 4