[resolvido] BANCO DE DADOS COM JTABLE

Desculpa minha ignorancia, mas é o seguinte: tenho o codigo abaixo para exibir os dados do meu banco de dados:

try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB", "SYSDBA", "masterkey");
            JOptionPane.showMessageDialog(null, "Conectado ao banco com sucesso");
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            resultset = statement.executeQuery("select * from tb_clientes");
            
                        
            
            while(resultset.next()){
            JOptionPane.showMessageDialog(null, "Cod. do cliente: " + resultset.getInt("cod") + "\nNome do cliente: " + resultset.getString("nome"));
            }
            
            
            
                        
        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não localizado: ");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "Erro na conexão com a fonte " + Fonte);
        }
    
    conexao = null;

beleza, funciona direitinho…
agora eu quero ao inves de mostrar em um JOptionPane, quero exibir esses dados em uma tabela, ae fiz assim:

try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB", "SYSDBA", "masterkey");
            JOptionPane.showMessageDialog(null, "Conectado ao banco com sucesso");
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            resultset = statement.executeQuery("select * from tb_clientes");
            
                        
            
            while(resultset.next()){
            jTable1.setValueAt(resultset.getString("nome"), 0, 0);
            }
            
            
            
            
                        
        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não localizado: ");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "Erro na conexão com a fonte " + Fonte);
        }
    
    conexao = null;

coloquei como exemplo mostrar o nome, mas nao aparece o nome que esta no banco!
e sei que isto esta errado pois como que vai mostrar linha a linha?
estou com essa duvida e preciso exbir os dados do banco ainda hoje em uma tabela…
se alguem poder me ajudar, agradeço!

Implementa um model em sua JTable e faça a inserção dos dados no model, muito mais simples…

Aconselho a utilizar o AbstractTableModel

http://www.guj.com.br/java/149861-recuperar-id-de-jtable/2#813171

consegui mostrar na tabela os dados, porem ele mostra o primeiro e o segundo registro. depois da erro!
meu codigo:

try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB", "SYSDBA", "masterkey");
            JOptionPane.showMessageDialog(null, "Conectado ao banco com sucesso");
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            resultset = statement.executeQuery("select * from tb_clientes");
            
            int i = 0;
            while(resultset.next()){
                int id = resultset.getInt("cod");
                nome = resultset.getString("nome");
                endereco = resultset.getString("endereco");
                email = resultset.getString("email");
                telefone = resultset.getString("telefone");
                estado = resultset.getString("estado");
                sexo = resultset.getString("sexo");
                interesses = resultset.getString("interesses");
                biografia = resultset.getString("biografia");
                
                jTable1.setValueAt(id, i, 0);
                jTable1.setValueAt(nome, i, 1);
                jTable1.setValueAt(endereco, i, 2);
                jTable1.setValueAt(email, i, 3);
                jTable1.setValueAt(telefone, i, 4);
                jTable1.setValueAt(estado, i, 5);
                jTable1.setValueAt(sexo, i, 6);
                jTable1.setValueAt(interesses, i, 7);
                jTable1.setValueAt(biografia, i, 8);
                
                Object colunas[] = {"Codigo","Nome","Endereço","Telefone","Estado","Sexo","Interesses","Biografia"};
                Object linhas[][] = {
                    {id,nome,endereco,email,telefone,estado,sexo,interesses,biografia},
                    {}
                };
                
                DefaultTableModel modelo = new DefaultTableModel(linhas,colunas);
                jTable1.setModel(modelo);
  
                  
                i++;
            } 
           
            
            
        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não localizado: ");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "Erro na conexão com a fonte " + Fonte);
        }
    
    conexao = null;

mas ocorre o erro:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 8 >= 8
	at java.util.Vector.elementAt(Vector.java:470)
	at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
	at sun.swing.SwingUtilities2.convertColumnIndexToModel(SwingUtilities2.java:1841)
	at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2585)
	at javax.swing.JTable.setValueAt(JTable.java:2744)
	at formulario.JFFormulario.jButton3ActionPerformed(JFFormulario.java:474)
	at formulario.JFFormulario.access$300(JFFormulario.java:27)
	at formulario.JFFormulario$4.actionPerformed(JFFormulario.java:180)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
CONSTRUÍDO COM SUCESSO (tempo total: 10 segundos)

Resolvido:
segue codigo que consegue adicionar na tabela TODOS os registros do banco!

try
        {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            conexao = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\teste\\CADASTROS.FDB", "SYSDBA", "masterkey");
            JOptionPane.showMessageDialog(null, "Conectado ao banco com sucesso");
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            resultset = statement.executeQuery("select * from tb_clientes");
            
            int i = 0;
            while(resultset.next()){
                id = resultset.getInt("cod");
                nome = resultset.getString("nome");
                endereco = resultset.getString("endereco");
                email = resultset.getString("email");
                telefone = resultset.getString("telefone");
                estado = resultset.getString("estado");
                sexo = resultset.getString("sexo");
                interesses = resultset.getString("interesses");
                biografia = resultset.getString("biografia");
                
                
                jTable1.setValueAt(id, i, 0);
                jTable1.setValueAt(nome, i, 1);
                jTable1.setValueAt(endereco, i, 2);
                jTable1.setValueAt(email, i, 3);
                jTable1.setValueAt(telefone, i, 4);
                jTable1.setValueAt(estado, i, 5);
                jTable1.setValueAt(sexo, i, 6);
                jTable1.setValueAt(interesses, i, 7);
                jTable1.setValueAt(biografia, i, 8);
                
                DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
                modelo.addRow(new String[] {Integer.toString(id),nome,endereco,email,telefone,estado,sexo,interesses,biografia});
                i++;
            } 
           
            
            
        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não localizado: ");
        }
        catch(SQLException Fonte){
            JOptionPane.showMessageDialog(null, "Erro na conexão com a fonte " + Fonte);
        }
    
    conexao = null;

Já te enviei a solução: AbstractTableModel

/*************************************
 *             DOBBA v1.0            *
 *************************************/

/******************************
 * Programador: Guilherme Dio *
 ******************************/

/********************************************************
 *  Classe que implementa um AbstractTableModel *
 *  para preencher um JTable									   *
 *******************************************************/

package Models;

import java.util.*;
import Auxiliar.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
public class clsTecnicoModel extends AbstractTableModel
{
   private static final int COL_NOME = 0;
   private static final int COL_CARGO = 1;
   private static final int COL_ESTADO = 2;
   private static final int COL_CIDADE = 3;
   private static final int COL_BAIRRO = 4;
   private static final int COL_RUA = 5;
   private static final int COL_NUMERO = 6;
   private static final int COL_TELEFONE = 7;
   private static final int COL_CELULAR = 8;
   private static final int COL_ADMISSAO = 9;
   private static final int COL_SALARIO = 10;
   private static final int COL_STATUS = 11;
   
   //Lista de objetos da classe "clsTecnico"
   private List<clsTecnico> valores;

   public clsTecnicoModel(List<clsTecnico> valores)
   {
       this.valores = new ArrayList<clsTecnico>(valores);
   }
   
   public int getRowCount()
   {
       //Qtd. de linhas
       return valores.size();
   }
   
   public int getColumnCount()
   {
       //Qtd. de colunas
       return 12;
   }
   
   @Override
   public String getColumnName(int columnIndex)
   {
       //Nome das colunas
       if (columnIndex == COL_NOME) return "Nome";
       if (columnIndex == COL_CARGO) return "Cargo";
       if (columnIndex == COL_ESTADO) return "Estado";
       if (columnIndex == COL_CIDADE) return "Cidade";
       if (columnIndex == COL_BAIRRO) return "Bairro";
       if (columnIndex == COL_RUA) return "Rua";
       if (columnIndex == COL_NUMERO) return "Número";
       if (columnIndex == COL_TELEFONE) return "Telefone";
       if (columnIndex == COL_CELULAR) return "Celular";
       if (columnIndex == COL_ADMISSAO) return "Admissão";
       if (columnIndex == COL_SALARIO) return "Salário";
       if (columnIndex == COL_STATUS) return "Status";
       return "";
   }

   @Override
   public Object getValueAt(int rowIndex,int columnIndex)
   {
       clsTecnico objTecnico = valores.get(rowIndex);
       //Get de valor
       if (columnIndex == COL_NOME) return objTecnico.getNome();
       if (columnIndex == COL_CARGO) return objTecnico.getCargo();
       if (columnIndex == COL_ESTADO) return objTecnico.getEstado();
       if (columnIndex == COL_CIDADE) return objTecnico.getCidade();
       if (columnIndex == COL_BAIRRO) return objTecnico.getBairro();
       if (columnIndex == COL_RUA) return objTecnico.getRua();
       if (columnIndex == COL_NUMERO) return objTecnico.getNumero();
       if (columnIndex == COL_TELEFONE) return objTecnico.getTelefone();
       if (columnIndex == COL_CELULAR) return objTecnico.getCelular();
       if (columnIndex == COL_ADMISSAO) return objTecnico.getAdmissao();
       if (columnIndex == COL_SALARIO) return "R$ "+objTecnico.getSalario();
       if (columnIndex == COL_STATUS)
       { 
           if(objTecnico.getStatus() == 1)
              return "Ativo";
           else
              return "Inativo";
       }
       return "";
   }

   @Override
   public void setValueAt(Object aValue, int rowIndex,int columnIndex)
   {
       clsTecnico objTecnico = valores.get(rowIndex);
       //Set de valor
       if (columnIndex == COL_NOME) objTecnico.setNome(aValue.toString());
       if (columnIndex == COL_CARGO) objTecnico.setCargo(aValue.toString());
       if (columnIndex == COL_ESTADO) objTecnico.setEstado(aValue.toString());
       if (columnIndex == COL_CIDADE) objTecnico.setCidade(aValue.toString());
       if (columnIndex == COL_BAIRRO) objTecnico.setBairro(aValue.toString());
       if (columnIndex == COL_RUA) objTecnico.setRua(aValue.toString());
       if (columnIndex == COL_NUMERO) objTecnico.setNumero(aValue.toString());
       if (columnIndex == COL_TELEFONE) objTecnico.setTelefone(aValue.toString());
       if (columnIndex == COL_CELULAR) objTecnico.setCelular(aValue.toString());
       if (columnIndex == COL_SALARIO) objTecnico.setSalario(Double.valueOf(aValue.toString()));
       if (columnIndex == COL_STATUS) objTecnico.setStatus(Integer.valueOf(aValue.toString()));
       fireTableCellUpdated(rowIndex, columnIndex);
   }

   @Override
   public Class<?> getColumnClass(int columnIndex)
   {
       return String.class;
   }

   @Override
   public boolean isCellEditable(int rowIndex, int columnIndex) 
   {    
       if(columnIndex != COL_STATUS)
       {
          //Permite edição
          return true;
       }
       return false;
   }    

   @Override
   public void addTableModelListener(TableModelListener l) 
   {
	listenerList.add(TableModelListener.class, l);
   }

   public clsTecnico getRow(int rowIndex) 
   {   
       //Valor da linha inteira
       return valores.get(rowIndex);   
   }

}