Galera, to tentando entender esse JTable… mas ta dificil. Cara é muito complicado…
To precisando do seguinte: tenho uma telinha de cadastro de user, e quero apenas que ao cadastrar novos users esse user aparece na table. E tambem com as funções de remover e alterar.
OBS. Por enquanto estou usando apenas array para arnazenar os dados… sem bd.
Porisso desanima estuda Java por conta. Vc lêl, lê, lê mas no final das contas ainda está sem saber.
Não consigo fazer essa table, para exibir meus dados. Sabe consigo cria-la, e colocar os valores que quero… mas dai, mas daí já atualizar com novos dados, inserir linhas…
Ta foda…
Valeu quem ajudou ai
danieldestro
Oi nirsu,
Antes de tentar aprender e usar a jtable eu também achava muito foda e um saco. Aí pegueí um exemplo aqui, outro alí, lí os tutorias da Sun e uns pela net.
Depois que você faz o seu primeiro Model e Renderer, você nunca mais vai achar difícil e vai ver como é legal.
Dica: Não enfie os seus dados diretamente no seu jtable. Crei um classe de Model, ou use a classe DefaultTableModel. O objeto desta classe équem vai gerenciar os dados para você. E você não precisará nem mexer com a table, apenas com o model.
Eu tenho um códiglo legal aqui. Vou ser ponho pra vc aqui.
danieldestro
Seu código para criar o model com algum dado e popular na JTable:
packageseu.model;publicclassPessoa{privateStringnome;privateIntegeridade;privateStringemail;//metodos get e set}
Seu Model:
packageseu.model;importjava.util.*;importjavax.swing.*;importjavax.swing.event.*;importjavax.swing.table.*;importjava.awt.*;importjava.awt.event.*;publicclassSeuTableModelextendsAbstractTableModel{/** * Mantém um array com os nomes das colunas. */privatefinalString[]columnNames={"Nome","Idade","E-mail"};/** * Mantém os dados a serem apresentados na tabela. */privateListdata;/** * O construtor deve receber um List com objetos do tipo Pessoa, * que serão exibidos na tabela. */publicSeuTableModel(Listdata){this.data=data;}publicListgetData(){returnthis.data;}publicvoidresetData(){this.data=newArrayList();this.fireTableDataChanged();}publicvoidaddNewEmptyLine(){addPessoa(newPessoa());}publicvoidaddPessoa(Pessoap){this.data.add(p);this.fireTableDataChanged();}publicvoidremovePessoa(Pessoap){this.data.remove(p);this.fireTableDataChanged();}publicvoidremovePessoa(intindex){this.data.remove(index);this.fireTableDataChanged();}publicintgetColumnCount(){returncolumnNames.length;}publicintgetRowCount(){returndata.size();}publicStringgetColumnName(intcol){returncolumnNames[col];}publicClassgetColumnClass(intc){switch(c){case0:returnString.class;case1:returnInteger.class;case2:returnString.class;}returnString.class;}publicbooleanisCellEditable(introw,intcol){switch(col){case0:returntrue;case1:returnfalse;case2:returntrue;}returnfalse;}publicObjectgetValueAt(introw,intcol){Pessoap=(Pessoa)data.get(row);if(p==null)returnnull;switch(col){case0:returnp.getNome();case1:returnp.getIdade();case2:returnp.getEmail();}returnnull;}/* * Don't need to implement this method unless your table's * data can change. */publicvoidsetValueAt(Objectvalue,introw,intcol){Pessoap=(Pessoa)data.get(row);switch(col){case0:p.setNome((String)value);break;case1:p.setIdade((Integer)value);break;case2:p.setIdade((String)value);break;}fireTableCellUpdated(row,col);}}
keller
eu prefiro utilizar a DefultTableModel ela já vem com varios metodos bons… mas mesmo assim de uma implementada… valeu ?