<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Morte definitiva ao default table model"]]></title>
		<link>http://www.guj.com.br/posts/list/13.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Morte definitiva ao default table model"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Morte definitiva ao default table model</title>
				<description><![CDATA[ gente,<br /> <br /> Vamo parar com essa bobeira de usar DefaultTableModel, realmente... eu usei uma vez, o vinny me passou uns links para estudar... Peguei um modelo pronto e comecei a usar... NUNCA mais parei.. então vamos ao passo-a-passo?<br /> <br /> [b]PRIMEIRA COISA:[/b] você deve criar uma classe no seu projeto para ser a classe do modelo... Para fazer isso, basta você adaptar o seguinte código:<br /> <br /> [code]package regra;<br /> <br /> import java.util.ArrayList;<br /> import java.util.List;<br /> import javax.swing.table.AbstractTableModel;<br /> <br /> public class ClienteTableModel extends AbstractTableModel {<br /> <br />     private static final long serialVersionUID = 1L;<br /> <br />     /* Lista de Cliente que representam as linhas. */<br />     private List&lt;Cliente&gt; linhas;<br /> <br />     /* Array de Strings com o nome das colunas. */<br />     private String[] colunas = new String[]{<br />         "Nome","Endereço", "Telefone"};<br /> <br /> <br /> <br />     /* Cria um ClienteTableModel vazio. */<br />     public ClienteTableModel() {<br />         linhas = new ArrayList&lt;Cliente&gt;();<br />     }<br /> <br />     /* Cria um ClienteTableModel carregado com<br />      * a lista de Cliente especificada. */<br />     public ClienteTableModel(List&lt;Cliente&gt; listaDeCliente) {<br />         linhas = new ArrayList&lt;Cliente&gt;(listaDeCliente);<br />     }<br /> <br /> <br />     /* Retorna a quantidade de colunas. */<br />     @Override<br />     public int getColumnCount() {<br />         // EstÃ¡ retornando o tamanho do array "colunas".<br />         return colunas.length;<br />     }<br /> <br />     /* Retorna a quantidade de linhas. */<br />     @Override<br />     public int getRowCount() {<br />         // Retorna o tamanho da lista de Cliente.<br />         return linhas.size();<br />     }<br /> <br /> <br />     @Override<br />     public String getColumnName(int columnIndex) {<br />         // Retorna o conteÃºdo do Array que possui o nome das colunas<br />         return colunas[columnIndex];<br />     }<br /> <br />     ;<br /> <br />     @Override<br />     public Class&lt;?&gt; getColumnClass(int columnIndex) {<br />         return String.class;<br />     }<br /> <br />     ;<br /> <br /> <br />     @Override<br />     public Object getValueAt(int rowIndex, int columnIndex) {<br />             Cliente cliente = linhas.get(rowIndex);<br /> <br />         // Retorna o campo referente a coluna especificada.<br />         // Aqui é feito um switch para verificar qual é a coluna<br />         // e retornar o campo adequado. As colunas sãoas mesmas<br />         // que foram especificadas no array "colunas".<br />         switch (columnIndex) {<br /> <br />             // Seguindo o exemplo: "Tipo","Data de Cadastro", "Nome", "Idade"};<br />             case 0:<br />                 return cliente.getNome();<br />             case 1:<br />                 return cliente.getEndereco();<br />             case 2:<br />                 return cliente.getTel();<br />             default:<br />                 // Isto não deveria acontecer...<br />                 throw new IndexOutOfBoundsException("columnIndex out of bounds");<br />         }<br />     }<br /> <br />  @Override<br />  //modifica na linha e coluna especificada<br />  public void setValueAt(Object aValue, int rowIndex, int columnIndex) {<br />       Cliente cliente = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado<br /> <br />      switch (columnIndex) { // Seta o valor do campo respectivo<br />          case 0:<br />              cliente.setNome(aValue.toString());<br />          case 1:<br />              cliente.setEndereco(aValue.toString());<br />          case 2:<br />              cliente.setTel(aValue.toString());<br /> <br />          default:<br />              // Isto não deveria acontecer...             <br />      }<br />      fireTableCellUpdated(rowIndex, columnIndex);<br />      }<br /> <br />     //modifica na linha especificada<br />     public void setValueAt(Cliente aValue, int rowIndex) {<br />         Cliente cliente = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado<br /> <br />         cliente.setNome(aValue.getNome());<br />         cliente.setEndereco(aValue.getEndereco());<br />         cliente.setTel(aValue.getTel());<br /> <br />         fireTableCellUpdated(rowIndex, 0);<br />         fireTableCellUpdated(rowIndex, 1);<br />         fireTableCellUpdated(rowIndex, 2);<br /> <br />     }<br />     ;<br /> <br /> <br />     ;<br /> <br /> <br />     @Override<br />     public boolean isCellEditable(int rowIndex, int columnIndex) {<br />         return false;<br />     }<br /> <br /> <br />     public Cliente getCliente(int indiceLinha) {<br />         return linhas.get(indiceLinha);<br />     }<br /> <br /> <br /> <br />     /* Adiciona um registro. */<br />     public void addCliente(Cliente m) {<br />         // Adiciona o registro.<br />         linhas.add(m);<br /> <br /> <br />         int ultimoIndice = getRowCount() - 1;<br /> <br />         fireTableRowsInserted(ultimoIndice, ultimoIndice);<br />     }<br /> <br />     /* Remove a linha especificada. */<br />     public void removeCliente(int indiceLinha) {<br />         linhas.remove(indiceLinha);<br /> <br />         fireTableRowsDeleted(indiceLinha, indiceLinha);<br />     }<br /> <br />     /* Adiciona uma lista de Cliente ao final dos registros. */<br />     public void addListaDeCliente(List&lt;Cliente&gt; cliente) {<br />         // Pega o tamanho antigo da tabela.<br />         int tamanhoAntigo = getRowCount();<br /> <br />         // Adiciona os registros.<br />         linhas.addAll(cliente);<br /> <br />         fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);<br />     }<br /> <br />     /* Remove todos os registros. */<br />     public void limpar() {<br />         linhas.clear();<br /> <br /> <br />         fireTableDataChanged();<br />     }<br /> <br />     /* Verifica se este table model esta vazio. */<br />     public boolean isEmpty() {<br />         return linhas.isEmpty();<br />     }<br /> <br /> <br /> <br /> }<br /> [/code]<br /> <br /> <br /> [b]SEGUNDA COISA:[/b] criar um atributo do tipo do modelo na janela em que a jtable existe:<br /> <br /> [code]ClientesTableModel modelo;[/code]<br /> <br /> <br /> <br /> [b]TERCEIRA COISA:[/b] no construtor da janela você vai adicionar o modelo: eis o exemplo:<br /> <br /> [code]<br /> public Jan_Principal() {<br />         super("Título da janela");<br />         initComponents(); <br />         setLocationRelativeTo(null); //janela fica no centro da tela ao ficar visível...<br /> <br /> <br />         //Adicionando os modelos das tabelas<br />         modelo = new ClientesTableModel();<br />         tabela_Exemplo.setModel(modelo);<br /> }<br /> <br /> [/code]<br /> <br /> <br /> [b]QUARTA COISA:[/b] na hora de adicionar algum "Cliente" no caso na tabela basta fazer:<br /> <br /> [code]<br /> modelo.addClientes(objetoDoCliente);<br /> [/code]<br /> <br /> <br /> abraços!<br /> Espero que possa ajudar alguem!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192228/morte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192228/morte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 00:47:09]]> GMT</pubDate>
				<author><![CDATA[ d34d_d3v1l]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Nunca vai morrer hehehehe<br /> <br /> Se tem cara fazendo programa em DOS criando tabela com caracter de || e = ainda, c acha default table model ruim?? huauhahuahuauhhuahauuaha<br /> <br /> Sempre tem os defensores inabalaveis contra o default table model, mas ele vai continuar firme e forte hehehehe<br /> <br /> Todo newbie vai usar um dia, ta no site da Oracle...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192244/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192244/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 05:52:09]]> GMT</pubDate>
				<author><![CDATA[ heroijapa]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote]Todo newbie vai usar um dia, ta no site da Oracle...[/quote]<br /> <br /> Até porque antes de aprender a correr, aprendemos a andar... e antes disso aprendemos a engatinhar]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192261/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192261/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 08:17:45]]> GMT</pubDate>
				<author><![CDATA[ ADEMILTON]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Toh usando essa danada no netbeans se alguem tiver alguma coisa pra facilitar as coisas seram muito bem vindas.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192267/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192267/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 08:28:18]]> GMT</pubDate>
				<author><![CDATA[ carcara]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Eu utilizo o ObjectTableModel do proj Towell, gostei bastante, muito simples de usarr..<br /> segue link: [url]http://code.google.com/p/towel/wiki/ObjectTableModel[/url]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192268/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192268/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 08:28:42]]> GMT</pubDate>
				<author><![CDATA[ Priuli]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Também uso a ObjectTableModel do projeto Towel do Marky e recomendo.<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192291/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192291/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 08:51:31]]> GMT</pubDate>
				<author><![CDATA[ mrrbigu]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote=ADEMILTON]Até porque antes de aprender a correr, aprendemos a andar... e antes disso aprendemos a engatinhar[/quote]<br /> Seguindo esta analogia, eu diria que o DefaultTableModel representa uma fase antes desta, aquela em que temos que chorar. <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192367/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192367/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 10:05:05]]> GMT</pubDate>
				<author><![CDATA[ Eric Yuzo]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Ao d34d_d3v1l, excelente iniciativa abandonar o DefaultTableModel.<br /> <br /> Quanto ao model postado, apenas algumas dicas:<br /> <br /> O método setValueAt deveria setar o valor de um campo do Cliente, correspondente a célula passada por parâmetro. Ficaria mais ou menos assim:<br /> [code]    @Override<br />     public void setValueAt(Object aValue, int rowIndex, int columnIndex) {<br />          Clientes clientes = linhas.get(rowIndex);; // Carrega o item da linha que deve ser modificado<br /> <br />         switch (columnIndex) { // Seta o valor do campo respectivo<br />             case 0:<br />                 clientes.setTipo(aValue);<br />             case 1:<br />                 clientes.setData(aValue);<br />             case 2:<br />                 clientes.setNome(aValue);<br />             case 3:<br />                 clientes.setIdade(aValue);<br />              <br />             default:  <br />                 // Isto não deveria acontecer...   <br />                 throw new IndexOutOfBoundsException("columnIndex out of bounds");<br /> <br />         fireTableCellUpdated(rowIndex, columnIndex); // Notifica a atualização da célula<br />     }[/code]Porém, com o método isCellEditable retornando sempre false, ele acabará não sendo usado.<br /> <br /> E faltou retornar o Cliente no método getCliente:<br /> [code]public Cliente getClientes(int indiceLinha) {<br />     return linhas.get(indiceLinha);<br /> }[/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192386/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192386/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 10:21:20]]> GMT</pubDate>
				<author><![CDATA[ Eric Yuzo]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ comecei a refatorar mru projeto usando as proprias o Table model "Local", tem um ganho bem significativo com relação ao desempenho da maquina!<br /> a unica coisa que nao consegui resolver é como se pegao registro depois da tabela filtrada...<br /> se alguem souber disso, posta ake tbm<br /> (=]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192424/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192424/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 10:46:03]]> GMT</pubDate>
				<author><![CDATA[ jperondi]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [b]Eric Yuzo[/b] obrigado, já fiz as mudanças necessárias <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0"><br /> <br /> Realmente gente, concordo... Sempre haverá quem está no começo vai usar o DefaultTableModel... mas a intenção é que eles larguem de usá-lo ao ver este tópico... <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1192484/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1192484/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 2 Feb 2011 11:37:38]]> GMT</pubDate>
				<author><![CDATA[ d34d_d3v1l]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ dei uma modificada no tableModel,<br /> <br /> coloquei um mais recente e criei um novo método para modificar os dados de uma linha...<br /> Abraços!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1199841/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1199841/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Mon, 14 Feb 2011 17:10:36]]> GMT</pubDate>
				<author><![CDATA[ d34d_d3v1l]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ posta o codigo ae pra nois ver como ficou! se possivel! valeuuu!!!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1399584/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1399584/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 7 Mar 2012 10:59:39]]> GMT</pubDate>
				<author><![CDATA[ aprJava]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote=ADEMILTON]Até porque antes de aprender a correr, aprendemos a andar... e antes disso aprendemos a engatinhar[/quote]<br /> <br /> Na verdade, isso é conversa para boi dormir.<br /> <br /> Eu atendo o tópico de Java Básico e Interface Gráfica no GUJ há pelo menos 5 anos (se não for mais do que isso). Desde lá, vejo muitos iniciantes gastando [b]horas[/b] para realizar operações como remover registros, sincronizar o Default com dados do banco ou mesmo replicar buscas. Tarefas que o DefaultTableModel torna difíceis e enfadonhas.<br /> <br /> Entretanto, a maioria se apavora só de olhar para um TableModel, só por [i]achar[/i] o código mais complicado. A maioria, refuta o estudo [i]antes mesmo de começar[/i]. Não sei se por medo ou por preguiça.<br /> <br /> <br /> O que o povo não percebe é que o código do TableModel personalizado é [b]tudo[/b] o que se precisa para fazer uma tabela editável. E, se o sujeito parar para entender, vai ver que as implementações dos métodos são efetivamente triviais. Na interface gráfica, os códigos de botões, que usam um model personalizado, ficam extremamente ridículos. De fato, se você pegar todo o código que o DefaultTableModel deixou espalhado nos vários métodos de botão, vai ver que você gastou muito mais linhas, tempo e esforço em operações que, num model de verdade, nem sequer existiriam.<br /> <br /> <br /> O único iniciante que realmente pode usar essa desculpa é aquele que ainda nem sequer sabe modelar classes de negócio. É o caso de alguns que aparecem por aqui, colocando resultados de consultas diretamente em tabelas, no bom e velho estilo das linguagens estruturadas. Mas não são todos, e também não são a maioria. O que realmente me impressiona é que muita gente que está disposta a entender o modelo MVC, Hibernate e que em web usariam um design elegante, ainda que complexo, foge do TableModel personalizado quando vai para o Desktop. Vai entender.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1399642/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1399642/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 7 Mar 2012 12:10:18]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Morte definitiva ao default table model</title>
				<description><![CDATA[ <br /> Meus prezados, bom dia<br /> <br /> Quero usar jtableModel corretamente, por isso estou estudando a fundo toda a classe do link [url]http://www.guj.com.br/java/231928-morte-definitiva-ao-default-table-model[/url]. Mas eis a minha dúvida<br /> <br /> onde diz List&lt;[b]Cliente[/b]&gt; linhas; eu sei que se trata de um objeto. Porém não sei que objeto é esse. é uma classe ? um resultado de consulta SQL ?<br /> <br /> o que eu faço ? com essa linha ? (desde já perdoe a minha ignorância e muito obrigado!)<br /> <br /> Alguem poderia esclarecer pra mim o que é e se for pra receber um objeto do tipo ResultSet como faço para enviar para essa classe ?<br /> <br /> [code]<br /> /* Lista de Cliente que representam as linhas.*/<br />  private List&lt;Cliente&gt; linhas;<br /> [/code]   <br /> <br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1412999/morte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1412999/morte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 08:37:41]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ É uma classe que contém os dados dos clientes. Imagine que essa lista em algum momento foi carregada do banco, por algum DAO.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413013/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413013/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 08:52:56]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote=ViniGodoy]É uma classe que contém os dados dos clientes. Imagine que essa lista em algum momento foi carregada do banco, por algum DAO.[/quote]<br /> <br /> OK.<br /> Vejá só, carrego os dados, do BD e seto os os valores para os campos, para uma tabela que seja e tal. certo !<br /> usando os comandos while(rs.next())...etc<br /> <br /> Ou seja: não consigo entender como eu irei escrever a classe Cliente de forma que ela me retorne a lista ou Linhas desejadas.<br /> <br /> segue a baixo uma classe comum que eu uso normalmente, só não sei como fazer com que essa classe faça parte do atributo  [code]private List&lt;Cliente&gt; linhas; [/code].<br /> <br /> ...<br /> <br /> [code]<br /> /*<br />  * To change this template, choose Tools | Templates<br />  * and open the template in the editor.<br />  */<br /> package minhasClasses;<br /> <br /> import java.sql.SQLException;<br /> import javax.swing.JOptionPane;<br /> <br /> <br /> /**<br />  *<br />  * @author CESMT-CPD<br />  */<br /> public class clsManut_Cadastro {<br />     <br />     private RegNegocio rn;<br />    <br />     private String txtCPF;<br />     private String txtCodigo;<br />     private String txtDN;<br />     private String txtDTpericia;<br />     private String txtEnde;<br />     private String txtHorario;<br />     private String txtNIS;<br />     private String txtNome;<br />     private String txtNomeMae;<br />     private String txtNomePai;<br />     private String txtObs;<br />     private String txtRG;<br />     private String txtAnoBase;<br />     private String txtDT_Lancamento;<br />         <br />      /**<br />      * @return the txtCPF<br />      */<br />     public String getTxtCPF() {<br />         return txtCPF;<br />     }<br /> <br />    <br />    <br />     /*Final dos ATRIBUTOS*/<br /> <br />     /**<br />      * @param txtCPF the txtCPF to set<br />      */<br />     public void setTxtCPF(String txtCPF) {<br />         this.txtCPF = txtCPF;<br />     }<br /> <br />     /**<br />      * @return the txtCodigo<br />      */<br />     public String getTxtCodigo() {<br />         return txtCodigo;<br />     }<br /> <br />     /**<br />      * @param txtCodigo the txtCodigo to set<br />      */<br />     public void setTxtCodigo(String txtCodigo) {<br />         this.txtCodigo = txtCodigo;<br />     }<br /> <br />     /**<br />      * @return the txtDN<br />      */<br />     public String getTxtDN() {<br />         return txtDN;<br />     }<br /> <br />     /**<br />      * @param txtDN the txtDN to set<br />      */<br />     public void setTxtDN(String txtDN) {<br />         this.txtDN = txtDN;<br />     }<br /> <br />     /**<br />      * @return the txtDTpericia<br />      */<br />     public String getTxtDTpericia() {<br />         return txtDTpericia;<br />     }<br /> <br />     /**<br />      * @param txtDTpericia the txtDTpericia to set<br />      */<br />     public void setTxtDTpericia(String txtDTpericia) {<br />         this.txtDTpericia = txtDTpericia;<br />     }<br /> <br />     /**<br />      * @return the txtEnde<br />      */<br />     public String getTxtEnde() {<br />         return txtEnde;<br />     }<br /> <br />     /**<br />      * @param txtEnde the txtEnde to set<br />      */<br />     public void setTxtEnde(String txtEnde) {<br />         this.txtEnde = txtEnde;<br />     }<br /> <br />     /**<br />      * @return the txtHorario<br />      */<br />     public String getTxtHorario() {<br />         return txtHorario;<br />     }<br /> <br />     /**<br />      * @param txtHorario the txtHorario to set<br />      */<br />     public void setTxtHorario(String txtHorario) {<br />         this.txtHorario = txtHorario;<br />     }<br /> <br />     /**<br />      * @return the txtNIT<br />      */<br />     public String getTxtNIS() {<br />         return txtNIS;<br />     }<br /> <br />     /**<br />      * @param txtNIT the txtNIT to set<br />      */<br />     public void setTxtNIS(String txtNIS) {<br />         this.txtNIS = txtNIS;<br />     }<br /> <br />     /**<br />      * @return the txtNome<br />      */<br />     public String getTxtNome() {<br />         return txtNome;<br />     }<br /> <br />     /**<br />      * @param txtNome the txtNome to set<br />      */<br />     public void setTxtNome(String txtNome) {<br />         this.txtNome = txtNome;<br />     }<br /> <br />     /**<br />      * @return the txtNomeMae<br />      */<br />     public String getTxtNomeMae() {<br />         return txtNomeMae;<br />     }<br /> <br />     /**<br />      * @param txtNomeMae the txtNomeMae to set<br />      */<br />     public void setTxtNomeMae(String txtNomeMae) {<br />         this.txtNomeMae = txtNomeMae;<br />     }<br /> <br />     /**<br />      * @return the txtNomePai<br />      */<br />     public String getTxtNomePai() {<br />         return txtNomePai;<br />     }<br /> <br />     /**<br />      * @param txtNomePai the txtNomePai to set<br />      */<br />     public void setTxtNomePai(String txtNomePai) {<br />         this.txtNomePai = txtNomePai;<br />     }<br /> <br />     /**<br />      * @return the txtObs<br />      */<br />     public String getTxtObs() {<br />         return txtObs;<br />     }<br /> <br />     /**<br />      * @param txtObs the txtObs to set<br />      */<br />     public void setTxtObs(String txtObs) {<br />         this.txtObs = txtObs;<br />     }<br /> <br />     /**<br />      * @return the txtRG<br />      */<br />     public String getTxtRG() {<br />         return txtRG;<br />     }<br /> <br />     /**<br />      * @param txtRG the txtRG to set<br />      */<br />     public void setTxtRG(String txtRG) {<br />         this.txtRG = txtRG;<br />     }<br /> <br />     /**<br />      * @return the txtAnoBase<br />      */<br />     public String getTxtAnoBase() {<br />         return txtAnoBase;<br />     }<br /> <br />     /**<br />      * @param txtAnoBase the txtAnoBase to set<br />      */<br />     public void setTxtAnoBase(String txtAnoBase) {<br />         this.txtAnoBase = txtAnoBase;<br />     }<br /> <br />     /**<br />      * @return the txtDT_Lancamento<br />      */<br />     public String getTxtDT_Lancamento() {<br />         return txtDT_Lancamento;<br />     }<br /> <br />     /**<br />      * @param txtDT_Lancamento the txtDT_Lancamento to set<br />      */<br />     public void setTxtDT_Lancamento(String txtDT_Lancamento) {<br />         this.txtDT_Lancamento = txtDT_Lancamento;<br />     }<br />     <br />     <br />     //CONSTRUTOR ******************************<br />     public clsManut_Cadastro(){<br />       rn = new RegNegocio();<br />       rn.Conecta();<br />     }//construtor<br />           <br />     <br />     public void exeInsere(){<br />        try{<br />         rn.execUpIns("INSERT INTO dbRais("<br />                 + "nome,"<br />                 + "nomMae,"<br />                 + "nomPai,"<br />                 + "DatNasc,"<br />                 + "cpf,"<br />                 + "rg,"<br />                 + "Enderec,"<br />                 + "numNIS,"<br />                 + "numCodigo,"<br />                 + "Dt_Pericia,"<br />                 + "horario,"<br />                 + "obs,"<br />                 + "AnoBase,"<br />                 + "DT_lancamento)VALUES('"<br />                 +getTxtNome()+"','"<br />                 +getTxtNomeMae()+"','"<br />                 +getTxtNomePai()+"','"<br />                 +getTxtDN()+"','" <br />                 +getTxtCPF()+"','"<br />                 +getTxtRG()+"','"<br />                 +getTxtEnde()+"','"<br />                 +getTxtNIS()+"','"<br />                 +getTxtCodigo()+"','"<br />                 +getTxtDTpericia()+"','"<br />                 +getTxtHorario()+"','"<br />                 +getTxtObs()+"','"<br />                 +getTxtAnoBase()+"','"<br />                 +getTxtDT_Lancamento()+"')");<br />         <br />         rn.Desconecta();<br />        }catch(SQLException e2)<br />        {<br />           JOptionPane.showMessageDialog(null, "Erro ao tentar inserir esse registro. O erri diz:! "+e2);<br />        }<br />     }//final do método para inserir<br />     <br />     <br /> //tratamento do campo CPF<br /> public String tiraCaract(String campo){<br /> <br />     String pCPF = campo;<br />     String sCPF = pCPF.replace(".", "");<br />     String tCPF = sCPF.replace("-", "");<br />  return tCPF;<br /> }   //final do método tiraCaract<br /> <br /> <br /> <br />  public void exeUpdate(String pCPF) throws SQLException{<br />      //  try{<br />         rn.execUpIns("execute procedure insmanutcad('"<br />                 +pCPF+"','"<br />                 +getTxtNome()+"','"<br />                 +getTxtNomeMae()+"','"<br />                 +getTxtNomePai()+"','"<br />                 +getTxtDN()+"','" <br />                 +getTxtCPF()+"','"<br />                 +getTxtRG()+"','"<br />                 +getTxtEnde()+"','"<br />                 +getTxtNIS()+"','"<br />                 +getTxtCodigo()+"','"<br />                 +getTxtDTpericia()+"','"<br />                 +getTxtHorario()+"','"<br />                 +getTxtObs()+"')");<br />         rn.Desconecta();<br />     }//final do método para inserir<br /> <br /> <br />  public void exeCarregarDados(String pCPF){<br />        try{<br />         rn.execQuery("select * from dbRais where cpf = "+pCPF);<br />             while(rn.rs.next()) { <br />                 setTxtNome(rn.rs.getString("NOME"));<br />                 setTxtNomeMae(rn.rs.getString("NOMMAE"));<br />                 setTxtNomePai(rn.rs.getString("NOMPAI"));<br />                 setTxtDN(rn.rs.getString("DATNASC"));<br />                 setTxtCPF(rn.rs.getString("CPF"));<br />                 setTxtRG(rn.rs.getString("RG"));<br />                 setTxtEnde(rn.rs.getString("ENDEREC"));<br />                 setTxtNIS(rn.rs.getString("NUMNIS"));<br />                 setTxtCodigo(rn.rs.getString("NUMCODIGO"));<br />                 setTxtDTpericia(rn.rs.getString("DT_PERICIA"));<br />                 setTxtHorario(rn.rs.getString("HORARIO"));<br />                 setTxtObs(rn.rs.getString("OBS"));<br />                 setTxtAnoBase(rn.rs.getString("ANOBASE"));<br />           }<br />         rn.Desconecta();<br />        }catch(Exception e)<br />        {<br />           JOptionPane.showMessageDialog(null, "Erro ao Carregar os dados! "<br />                   + "Linha 313 - Mpublic void exeCarregarDados(String pCPF). \n"<br />                   + "Verifique se há um registro selecionado.");<br />        }<br />     }//final do método para inserir<br />  <br /> <br /> public void execDelete(String pCPF ){<br />     try{<br />     rn.execUpIns("delete from dbRais where cpf="+pCPF);<br />     JOptionPane.showMessageDialog(null, "Dados excluídos com sucesso!");<br />     }catch(SQLException e){<br />        JOptionPane.showMessageDialog(null, "Erro ao tentar excluir o registro! O erro diz: "+e);<br />     }<br /> }//final do método excluir<br /> <br /> <br /> }//final da classe clsTeste<br /> <br /> <br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413026/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413026/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 09:08:12]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ No caso caso, seu model teria um List&lt;clsManut_Cadastro&gt; no lugar de um List&lt;Cliente&gt;<br /> <br /> A classe Cliente nesse caso foi só usada de exemplo, mas vc pode criar um model para qualquer coisa.<br /> <br /> <br /> Se você quer carregar um Table, você vai carregar uma lista de algum tipo de dados, não?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413030/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413030/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 09:12:35]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote=ViniGodoy]No caso caso, seu model teria um List&lt;clsManut_Cadastro&gt; no lugar de um List&lt;Cliente&gt;<br /> <br /> A classe Cliente nesse caso foi só usada de exemplo, mas vc pode criar um model para qualquer coisa.<br /> <br /> <br /> Se você quer carregar um Table, você vai carregar uma lista de algum tipo de dados, não?[/quote]<br /> <br /> Certo, mas em que momento da minha classe clsManut_Cadastro, o modelo irá entender que meu Jtable deverá ser carregado com os dados do DB?<br /> pois essa classe contem "n" métodos e eu ainda não entendir como essa mágica é feita dentro da classe do modelo.<br /> <br /> Mais uma vez perdão pela ignorânica. é que preciso apenas entender mesmo todos os detalhes e pelo jeito, vc aqui é autoridade máxima. obrigado !]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413036/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413036/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 09:19:27]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [quote=cleber_prog][quote=ViniGodoy]No caso caso, seu model teria um List&lt;clsManut_Cadastro&gt; no lugar de um List&lt;Cliente&gt;<br /> <br /> A classe Cliente nesse caso foi só usada de exemplo, mas vc pode criar um model para qualquer coisa.<br /> <br /> <br /> Se você quer carregar um Table, você vai carregar uma lista de algum tipo de dados, não?[/quote]<br /> <br /> Certo, mas em que momento da minha classe clsManut_Cadastro, o modelo irá entender que meu Jtable deverá ser carregado com os dados do DB?<br /> pois essa classe contem "n" métodos e eu ainda não entendir como essa mágica é feita dentro da classe do modelo.<br /> <br /> Mais uma vez perdão pela ignorânica. é que preciso apenas entender mesmo todos os detalhes e pelo jeito, vc aqui é autoridade máxima. obrigado ![/quote]<br /> <br /> depois de substituir Cliente pela minha classe supracitada deu o seguinte erro em getRowCount():<br /> <br /> [code]<br />  /* Retorna a quantidade de linhas. */<br />     @Override<br />     public int getRowCount() {<br />         // Retorna o tamanho da lista de Cliente.<br />         return linhas.size();<br />     }<br /> [/code]<br /> <br /> <br /> [code]<br /> run:<br /> Exception in thread "main" java.lang.NullPointerException<br /> 	at minhasClasses.clsConfigJtable.getRowCount(clsConfigJtable.java:53)<br /> 	at javax.swing.JTable.getRowCount(JTable.java:2631)<br /> 	at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1646)<br /> 	at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1687)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)<br /> 	at javax.swing.JViewport.getViewSize(JViewport.java:1018)<br /> 	at javax.swing.ScrollPaneLayout.preferredLayoutSize(ScrollPaneLayout.java:476)<br /> 	at java.awt.Container.preferredSize(Container.java:1599)<br /> 	at java.awt.Container.getPreferredSize(Container.java:1584)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)<br /> 	at org.netbeans.lib.awtextra.AbsoluteLayout.layoutContainer(Unknown Source)<br /> 	at java.awt.Container.layout(Container.java:1421)<br /> 	at java.awt.Container.doLayout(Container.java:1410)<br /> 	at java.awt.Container.validateTree(Container.java:1507)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validate(Container.java:1480)<br /> 	at java.awt.Window.show(Window.java:861)<br /> 	at java.awt.Component.show(Component.java:1563)<br /> 	at java.awt.Component.setVisible(Component.java:1515)<br /> 	at java.awt.Window.setVisible(Window.java:842)<br /> 	at prjprincipal.Main.main(Main.java:31)<br /> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException<br /> 	at minhasClasses.clsConfigJtable.getRowCount(clsConfigJtable.java:53)<br /> 	at javax.swing.JTable.getRowCount(JTable.java:2631)<br /> 	at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1646)<br /> 	at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1687)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)<br /> 	at javax.swing.JViewport.getViewSize(JViewport.java:1018)<br /> 	at javax.swing.ScrollPaneLayout.preferredLayoutSize(ScrollPaneLayout.java:476)<br /> 	at java.awt.Container.preferredSize(Container.java:1599)<br /> 	at java.awt.Container.getPreferredSize(Container.java:1584)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)<br /> 	at org.netbeans.lib.awtextra.AbsoluteLayout.layoutContainer(Unknown Source)<br /> 	at java.awt.Container.layout(Container.java:1421)<br /> 	at java.awt.Container.doLayout(Container.java:1410)<br /> 	at java.awt.Container.validateTree(Container.java:1507)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validate(Container.java:1480)<br /> 	at java.awt.Window.dispatchEventImpl(Window.java:2476)<br /> 	at java.awt.Component.dispatchEvent(Component.java:4460)<br /> 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)<br /> 	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)<br /> 	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)<br /> 	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)<br /> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)<br /> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)<br /> 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)<br /> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException<br /> 	at minhasClasses.clsConfigJtable.getRowCount(clsConfigJtable.java:53)<br /> 	at javax.swing.JTable.getRowCount(JTable.java:2631)<br /> 	at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1646)<br /> 	at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1687)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)<br /> 	at javax.swing.JViewport.getViewSize(JViewport.java:1018)<br /> 	at javax.swing.ScrollPaneLayout.preferredLayoutSize(ScrollPaneLayout.java:476)<br /> 	at java.awt.Container.preferredSize(Container.java:1599)<br /> 	at java.awt.Container.getPreferredSize(Container.java:1584)<br /> 	at javax.swing.JComponent.getPreferredSize(JComponent.java:1636)<br /> 	at org.netbeans.lib.awtextra.AbsoluteLayout.layoutContainer(Unknown Source)<br /> 	at java.awt.Container.layout(Container.java:1421)<br /> 	at java.awt.Container.doLayout(Container.java:1410)<br /> 	at java.awt.Container.validateTree(Container.java:1507)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validateTree(Container.java:1513)<br /> 	at java.awt.Container.validate(Container.java:1480)<br /> 	at java.awt.Window.dispatchEventImpl(Window.java:2476)<br /> 	at java.awt.Component.dispatchEvent(Component.java:4460)<br /> 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)<br /> 	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)<br /> 	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)<br /> 	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)<br /> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)<br /> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)<br /> 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413043/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413043/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 09:28:27]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ <br />   Prezados, para nós que estamos aprendendo, pelo menos para mim, o tópico do amigo d34d_d3v1! que fala sobre a "Morte definitiva ao default table model" é execelente. Porém, depois de seguir todos os passos, buscar estudar as classes pertinentes. Ainda ficaram lacunas para serem preenchidas e meu projeto teste de estudos simplesmente não compila/traduz. (erro já mencionado acima).<br /> <br /> <br /> Há uma campanha fortissima contra o tal [b]default table model[/b], eu sou a favor da campanha, pois se é para programa, que seja da forma correta, então eu fico buscando essas formas e estudando-as, com base nos temas nos foruns debatidos.<br /> <br /> Mas vejam só, eu estou a 6 horas tentando fazer a classe TableModel funcionar, tudo que preciso é apenas setar os dados de DB em um Jtable, isso tudo claro, estudando para aprender.<br /> <br /> Cheguei no meu objetivo usando o tal default table model em 15min, sem contar a pausa para o cafezinho!!<br /> <br /> Quero programar da forma correta. Mas vamos combinar, pega uma classe aqui, para estudar, se matar desvendando seus mistérios pra no final das contas descobrir que ela foi feita pra não funcionar é dose!!<br /> <br /> Ou seja: [b]default table model[/b] enquanto dure !<br /> <br /> <br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413133/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413133/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 11:53:30]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Você inicializou a lista de linhas? Pq NullPointerException tem um significado bem claro: que ela não foi inicializada. Você deve carregar a lista do banco, e então repassar a lista para seu tablemodel, caso contrário, não funciona mesmo.<br /> <br /> <br /> Desenhar a tabela é o menor dos problemas. Quando você começar a manter um DefaultTableModel editável, ou precisar personalizar sua tabela com colunas ordenáveis, totais, ícones ou cores ou mesmo ter a coluna de ID escondida, aí conversamos melhor. Todos são problemas incríveis no Default, que são naturalmente resolvidos no seu próprio TableModel.<br /> <br /> <br /> Além disso, na minha assinatura, tem um link para diversas implementações funcionais de TableModel. Dê uma olhada nessa do Eric:<br /> <a class="snap_shots" href="http://www.guj.com.br/java/225793-exemplo-de-tablemodel#1156821" target="_blank" rel="nofollow">http://www.guj.com.br/java/225793-exemplo-de-tablemodel#1156821</a><br /> <br /> <br /> Vencer a curva de aprendizado é parte do processo. O fato de você perder 1 ou 2 dias aprendendo a usar uma ferramenta da forma correta não é desculpa ou justificativa para permanecer por anos dando murro em ponta de faca da forma incorreta, mesmo que a forma incorreta aparente ser mais fácil. Você vai, sim, perder algumas horas aprendendo a organizar seu projeto de maneira adequada, mas vai ganhar anos de manutenção tranquila.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413141/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413141/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 12:07:02]]> GMT</pubDate>
				<author><![CDATA[ ViniGodoy]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Vlw parceiro !!<br /> Rs. concordo plenamente contigo. Mas eu sei no fundo que vc teve seus momentos de stress também, por não conseguir ali naquele momento. Mas sei bem do que vc está falando quando diz perder horas estudadndo... !!<br /> <br /> Vou verificar sua orientação. <br /> Mas fique certo, meu único objetivo é realmente fazer da forma certa minhas aplicações, pois é algo que amo muito fazer e se amo, tem que ser do jeito certo.<br /> <br /> Ah... e vc ainda verá muitos post meus aqui...rs<br /> <br /> Mais uma vez muito obrigado. <br /> amigo certa vez me disseram, o GUJ é o melhor lugar para se está, quando se pretende aprender/aprimorar  JAVA. Hoje sei por que !!<br /> <br /> Vlw muito obrigado !! vamos a luta... ufa lá vai eu mais algumas horas ou dias... sei lá....]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413202/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413202/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 13:14:28]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ <br /> Tem como vcs passarem pra mim um exemplo de como <br /> iniciar a lista com dados do DB e essa ser usada na classe TableModel a baixo?<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413299/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413299/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 14:49:10]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ <br />   Meus Mestre, coloca esse código em uma lista pra mim<br /> <br /> [code]<br /> <br /> try{ <br />    rn.execQuery("select * from dbRais");<br />      while(rn.rs.next()) { <br />            mc.setTxtNome(rn.rs.getString("nome"));<br />            mc.setTxtRG(rn.rs.getString("rg"));<br />            mc.setTxtCPF(rn.rs.getString("cpf"));<br />            mc.setTxtNIS(rn.rs.getString("numNIS"));<br />            mc.setTxtAnoBase(rn.rs.getString("anobase"));<br />      }<br />         }catch(SQLException e){<br />           JOptionPane.showMessageDialog(null, e);<br />           }<br /> <br /> [/code]<br /> <br /> já entendi o TableModel, agora quero mandar uma Lista de dados pra ele!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1413313/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1413313/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 4 Apr 2012 15:11:40]]> GMT</pubDate>
				<author><![CDATA[ cleber_prog]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ [b]d34d_d3v1l [/b]<br /> <br /> Obrigado pelo tutorial cara, eu estava mesmo procurando.<br /> <br /> Ficou tão bem explicado que consegui fazer funcionar em questão de minutos, sem contar que irá resolver muitos de meus problemas utilizando tabelas.<br /> <br /> Abraços.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1428499/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1428499/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Sun, 6 May 2012 20:00:08]]> GMT</pubDate>
				<author><![CDATA[ Bruno M Gasparotto]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ Muito bom o tutorial, também fiz funcionar aqui...<br /> <br /> mas deixa eu ver se entendi, quer dizer que eu terei que fazer uma TableModel para cada novo grid?<br /> não tem como deixar isso mais genérico?<br /> <br /> digo isso pelo seguinte, eu estava usando Default Table Model e uma coisa que gostei foi a possibilidade de caso as dimensões da minha tabela mudem ele se adapta... para entender melhor, estou lendo as informações dessas tabelas de um arquivo XML que eh retornado por um Web Service... não eh só isso que o WS retorna, mas eh um dos casos... e ele pode retornar entre várias tabelas diferentes, com dimensões diferentes... o que eu fazia era ler esse XML, primeiramente os campos (colunas) e depois os dados (linhas)... isso está separado por duas TAGs uma [b]&lt;cabecalhogrid&gt;[/b] e uma [b]&lt;dadosgrid&gt;[/b] então isso pra minha implementação eh indiferente as dimensões da tabela/grid...<br /> <br /> esses dados do XML era lidos para um vetor (colunas) e uma matriz (dados)... e aí eu passava isso para o Default Table Model dessa forma:<br /> [code]<br /> DefaultTableModel modelo = new DefaultTableModel(dados, colunas); // dados eh uma matriz (String[][]) - e colunas um vetor (String[])<br /> JTable tabela = new JTable(modelo);<br /> [/code]<br /> <br /> por isso não consegui entender direito a vantagem em usar uma TableModel própria ou a desvantagem de usar uma DTM no meu caso... alguém pode me explicar melhor qual seria a real vantagem para mim e como eu resolveria o problema de ter que criar um TableModel para cada grid diferente que eu tiver... são muuuuuitos grid diferentes que retornam do WS...<br /> <br /> agradeço a atenção...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1428768/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1428768/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Mon, 7 May 2012 11:11:15]]> GMT</pubDate>
				<author><![CDATA[ paulork]]></author>
			</item>
			<item>
				<title>Re:Morte definitiva ao default table model</title>
				<description><![CDATA[ ninguém?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1430050/remorte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1430050/remorte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 9 May 2012 11:32:00]]> GMT</pubDate>
				<author><![CDATA[ paulork]]></author>
			</item>
			<item>
				<title>Morte definitiva ao default table model</title>
				<description><![CDATA[ Voce pode criar um TableModel generico ou usar um como o ObjectTableModel.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/231928/1430177/morte-definitiva-ao-default-table-model
</guid>
				<link>http://www.guj.com.br/prepost/231928/1430177/morte-definitiva-ao-default-table-model
</link>
				<pubDate><![CDATA[Wed, 9 May 2012 13:52:10]]> GMT</pubDate>
				<author><![CDATA[ Marky.Vasconcelos]]></author>
			</item>
	</channel>
</rss>
