Beruflich Dokumente
Kultur Dokumente
//Retorna o numero de colunas public int getColumnCount(){ return getColunas().length; } //Retorna o numero de linhas public int getRowCount(){ return getLinhas().size(); } //Obtem o valor da linhas e coluna public Object getValueAt(int rowIndex, int columnIndex){ //Recebe a linha, passando por cast para String[] String[] linha = (String[])getLinhas().get(rowIndex); //Retorna o objeto na posio de columnIndex return linha[columnIndex]; } //Seta valor da linha e coluna public void setValueAt(Object value,int rowIndex, int columnIndex){ String[] linha = (String[])getLinhas().get(rowIndex); //Altera o contedo da linha na posio do indice columnIndex linha[columnIndex] = (String)value; //Dispara o evento da celula alterada fireTableCellUpdated(rowIndex, columnIndex); } //Adiciona nova linha public void addRow(String[] dadosLinha){ getLinhas().add(dadosLinha); //Informa ao JTable que ouve linhas incluidas no modelo //Como os dados so adicionados no final pega o tamanho total das linhas //menos 1 para obter a linha incluida. int linha = getLinhas().size() -1; fireTableRowsInserted(linha,linha); } //Remove linha public boolean removeRow(String val, int col){ //obtem o iterator Iterator i = getLinhas().iterator();
//Guarda as linhas percorridas int linha = 0; //Faz um loop enquando obtiver dados while(i.hasNext()){ //Obtem as colunas da linha atual String[] linhaCorrente = (String[])i.next(); linha++; //Compara o valor da linha atual na coluna e valor //informado por parametro if(linhaCorrente[col].equals(val)){ getLinhas().remove(linha); //informa a JTable que houve dados deletados //passando a linha removida fireTableRowsDeleted(linha,linha); return true; } } //Caso no encontre o valor return false; } //Retorna o nome da coluna //getColumnName[col] retorna na posio do indice! public String getColumnName(int col){ return getColunas()[col]; } public ArrayList getLinhas(){ return linhas; } public String[] getColunas(){ return colunas; } public void setLinhas(ArrayList dados){ linhas = dados; } public void setColunas(String[] dados){
colunas = dados; } } 2 Classe JTableCreate: package myPck; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Types; import java.util.ArrayList; import javax.swing.JTable; /** * Classe responsvel por criar e definir o modelo * de JTable * Alm das funes de preenchimento dos dados na tabela * buscandos via banco * @author Marcelo Alves */ public class JTableCreate { private JTable jTable; private JTableModel modelo; /** * Construtor recebe os parametros das linhas e colunas * e execulta o metodo createJTable * @param linhas * @param colunas */ public JTableCreate(ArrayList linhas, String[] colunas){ createJTable(linhas,colunas); } /** * Define o modelo e cria jTable indicando o modelo criado * @param linhas * @param colunas */
public void createJTable(ArrayList linhas, String[] colunas){ modelo = new JTableModel(linhas,colunas); jTable = new JTable(modelo); } /** * Responsvel por preencher a jTable com dados buscados via * Banco. Dentro do lao for utiliza-se um switch para verificar * os dados de dados buscado no banco. * @param rs * @throws SQLException */ public void popularJTable(ResultSet rs)throws SQLException{ //Obtem os Meta dados do resultset ResultSetMetaData rsmd = rs.getMetaData(); /** * Cria a Array de Strings definindo o tamanho com o total de linhas retornada pela consulta */ String[] linhaNova = new String[rsmd.getColumnCount()]; //Enquanto existir dados while(rs.next()){ for(int i=0; i < modelo.getColumnCount(); i++){ switch (rsmd.getColumnType(i + 1)) { case Types.INTEGER: linhaNova[i] = +rs.getInt(i + 1); break; case Types.VARCHAR: linhaNova[i] = rs.getString(i + 1); break; } } modelo.addRow(linhaNova); } } /** * Retorna {@link JTable}
* @return jTable */ public JTable getJTable(){ return jTable; } /** * Altera jTable * @param jTable */ public void setJTable(JTable jTable){ this.jTable = jTable; } } Voc pode utilizar o tutorial passado juntamente com estas classes, claro que dever ser feitas alguma alteraes principalmente o acesso a um Banco de Dados.
This entry was posted on dezembro 6, 2007 at 2:25 pm and is filed under JAVA. Voc pode acompanhar qualquer resposta para esta entrada atravs do feed RSS 2.0. Voc pode deixar uma resposta, ou trackback do seu prprio site.
Oi, achei muito bom esse artigo! Mais tenho algumas duvida referentes ao tamanho das colunas pois quero que a minha tabelas fique com as colunas cada uma de um tamanho diferente e se possivel aumente e diminuan dinamicamente. Mais ja vai esta de bom tamanho se eu conseguir colocalas do tamanho que eu quero! Ento se poder me ajudar ficarei grato! Tenha uma boa semana! Fbio Neri 2. ma lvesinfo Disse:
fevereiro 9, 2009 s 7:31 pm | Responder
Poise quando fiz este exemplo justamente estava com este problema. Mas assim que conseguir achar a soluo te passo.. e obrigado pela visita Desculpe a desatualizao do blog. Esta semana j inicio novas postagens! 3. phrix Disse:
abril 6, 2009 s 8:04 pm | Responder
Ol estou lendo seu tutorial porm no estou conseguindo aplica-lo pois estou comeando agora com java, tenho uma classe que possui uma janela e outra que conecta o banco na classe da janela tenho um botao que
chama a classe que conecta o banco que no final mostra os dados com System.out.println(rs.getString(1) + + rs.getString(2)); como adaptaria isso para utilizar a JTable mostrada ? Valeu 4. malvesinfo Disse:
abril 8, 2009 s 9:48 pm | Responder
phrix, Ao criar a classe JTableCreate, chamar o mtodo popularJTable passando o ResultSet criado na hora que voc executou a SQL, quando voc instanciar JTableCreate pode passar como null as linhas e passar as colunas desejadas. Qualquer duvida s postar aqui!!!; []s! Marcelo Alves