JTable duplicando Colunas, Linhas e Dados

Boa Tarde Pessoal,

depois de 2 anos sem encher o saco de vcs, estou de voltar trazendo uma nova dor de kbça (pra mim O.o");

Bom eh o seguinte, estou criando uma aplicação de cadastros, esta mtooooooo basica por enquanto, esta td certinho com as compilações etc…

tenho uma tabela chamada CadastrosAlunos no oracle tbm, e a função do programa eh simplesmente INSERIR, ALTERAR e EXCLUIR dados do banco.

criei JTextFields que pegam os dados e incluem no banco, isso esta funcionando certinho tbm, as inclusões de dados.

E criei do lado direito um botão escrito LISTAR CADASTRADOS que pega os dados do banco e imprimi na JTABLE, a questão é que:

quando eu clico duas vzs nesse botão LISTAR, ele duplica as Linhas, as Colunas, e lógicamente DADOS, e vai incluindo infinitamente a cada clique que dou nesse botão…

se eu insiro uma informação nova e clico no LISTAR ele vai trazer essa nova informação, mas vai duplicar TUDO o que jah tinha. (isso soh acontece no JTable).

Agora o que eu gostaria de fazer, cujo não sei se é viavel, seria criar uma forma de apagar td conteudo do JTable, e Listar novamente, acredito que assim ele não duplicaria O.o"!!!

Fiz brutas pesquisas sobre como fazer isso, mas nada resolveu meu problema. até mesmo incluindo um metodo que pegasse as linhas como modelo.getRowCount() e depois dentro de um FOR modelo.removeRow();

Li alguns artigos inclusive do ViniGodoy dizendo para não usar o DefaultTableModel pq ele é mto ruim, mas tda as soluções que achei não falavam sobre conexão com banco de dados O.o, principalmente Oracle.

Segue abaixo todo o codigo:
Obs: Ainda não implementei Orientacao a objetos.

package dmrsistemas;


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;


public class CadastrosAlunos extends JFrame{
/*Criando os Componentes da Tela*/

    //Dados relacionados com o banco de dados
    static Connection conexao;
    String comandosql;
    
    
    //Criando Tabela para o banco
    private JScrollPane scrollpane;
    private JTable tabela;

    private JLabel infosgerais = new JLabel("Informações Gerais");
    private JLabel nome = new JLabel("Nome");
    private JLabel CPF = new JLabel("CPF (somente numeros)");
    private JLabel infosresidenciais = new JLabel("Informações Residenciais");
    private JLabel endereco = new JLabel("Endereço");
    private JLabel numero = new JLabel("Numero");
    private JLabel bairro = new JLabel("Bairro");
    private JLabel cidade = new JLabel("Cidade");
    private JLabel infocontato = new JLabel("Informações de Contato");
    private JLabel email = new JLabel("Email");
    private JLabel telefone = new JLabel("Telefone");
    
    private JTextField camponome = new JTextField(5);
    private JTextField campoend = new JTextField(10);
    private JTextField camponum = new JTextField(6);
    private JTextField campobairro = new JTextField(10);
    private JTextField campocidade = new JTextField(10);
    private JTextField campoemail = new JTextField(10);
    private JFormattedTextField campotelefone = new JFormattedTextField();
    
    private JFormattedTextField cpf = new JFormattedTextField();
    private JFormattedTextField datanasc = new JFormattedTextField();
    
    private JButton botaoInserir = new JButton("Inserir");
    private JButton botaoAlterar = new JButton("Alterar");
    private JButton botaoExcluir = new JButton("Excluir");
    private JButton botaoCancelar = new JButton("Cancelar");
    private JButton botaoMostrarTab = new JButton("Listar Cadastrados");

    //private static InterfaceCadastros INSTANCE = null;
    
    //definindo o modelo da tabela
    private DefaultTableModel modelo;
    //Método que constrói a janela da agenda
    
    
    
    
    //FUNCAO PRINCIPAL DA CLASSE - Chama metodo principal
    public static void Cadastros(){
    new CadastrosAlunos().InterfaceCadastros();    
    }
      
    
    
    public void InterfaceCadastros(){
     Textos();
     Campos();
     Botoes();
     Tabela();    
     Organizador();
     Janela();
    }
    

    public void Organizador(){
        
    Container Painel = new Container();
    this.getContentPane().add(Painel);
    //Painel.setLayout(null);
    Painel.add(infosgerais);
    
    Painel.add(nome);
    Painel.add(camponome);
    Painel.add(cpf);
    Painel.add(CPF);
    
    Painel.add(infosresidenciais);
    
    Painel.add(endereco);
    Painel.add(campoend);
    Painel.add(numero);
    Painel.add(camponum);
    Painel.add(bairro);
    Painel.add(campobairro);
    Painel.add(cidade);
    Painel.add(campocidade);
    
    Painel.add(infocontato);
    
    Painel.add(email);
    Painel.add(campoemail);
    Painel.add(telefone);
    Painel.add(campotelefone);
    
    Painel.add(botaoInserir);
    Painel.add(botaoAlterar);
    Painel.add(botaoExcluir);
    Painel.add(botaoCancelar);
    Painel.add(botaoMostrarTab);
    Painel.add(scrollpane);
    
    }
    

    public void Campos(){
    
    camponome.setVisible(true);
    camponome.setBounds(5, 55, 250, 20);//Horizontal, Vertical, Largura, Altura
    
    cpf.setVisible(true);
    cpf.setBounds(5, 110, 150, 20);//Horizontal, Vertical, Largura, Altura
    
    campoend.setVisible(true);
    campoend.setBounds(5, 210, 250, 20);//Horizontal, Vertical, Largura, Altura
    
    camponum.setVisible(true);
    camponum.setBounds(265, 210, 50, 20);//Horizontal, Vertical, Largura, Altura
    
    campobairro.setVisible(true);
    campobairro.setBounds(325, 210, 100, 20);//Horizontal, Vertical, Largura, Altura
    
    campocidade.setVisible(true);
    campocidade.setBounds(435, 210, 100, 20);//Horizontal, Vertical, Largura, Altura
    
    campoemail.setVisible(true);
    campoemail.setBounds(435, 55, 250, 20);
    
    campotelefone.setVisible(true);
    campotelefone.setBounds(435, 110, 150, 20);//Horizontal, Vertical, Largura, Altura
    }

    
    
    public void Textos(){
    
    infosgerais.setVisible(true);
    infosgerais.setBounds(5, 5, 120, 20);//Horizontal, Vertical, Largura, Altura
    infosgerais.setForeground(Color.black); 
    infosgerais.setFont(new Font("Arial", Font. BOLD, 12));
    
    nome.setVisible(true);
    nome.setBounds(5, 32, 100, 20);//Horizontal, Vertical, Largura, Altura
    nome.setForeground(Color.black); 
    nome.setFont(new Font("Arial", Font. ITALIC, 13));
    
    CPF.setVisible(true);
    CPF.setBounds(5, 85, 150, 20);//Horizontal, Vertical, Largura, Altura
    CPF.setForeground(Color.black); 
    CPF.setFont(new Font("Arial", Font. ITALIC, 13));
 
    infosresidenciais.setVisible(true);
    infosresidenciais.setBounds(5, 160, 150, 20);//Horizontal, Vertical, Largura, Altura
    infosresidenciais.setForeground(Color.black); 
    infosresidenciais.setFont(new Font("Arial", Font. BOLD, 12));
    
    endereco.setVisible(true);
    endereco.setBounds(5, 185, 150, 20);//Horizontal, Vertical, Largura, Altura
    endereco.setForeground(Color.black); 
    endereco.setFont(new Font("Arial", Font. ITALIC, 13));
    
    numero.setVisible(true);
    numero.setBounds(265, 185, 80, 20);//Horizontal, Vertical, Largura, Altura
    numero.setForeground(Color.black); 
    numero.setFont(new Font("Arial", Font. ITALIC, 13));

    bairro.setVisible(true);
    bairro.setBounds(325, 185, 80, 20);//Horizontal, Vertical, Largura, Altura
    bairro.setForeground(Color.black); 
    bairro.setFont(new Font("Arial", Font. ITALIC, 13));
    
    cidade.setVisible(true);
    cidade.setBounds(435, 185, 800, 20);//Horizontal, Vertical, Largura, Altura
    cidade.setForeground(Color.black); 
    cidade.setFont(new Font("Arial", Font. ITALIC, 13));
    
    infocontato.setVisible(true);
    infocontato.setBounds(435, 5, 150, 20);//Horizontal, Vertical, Largura, Altura
    infocontato.setForeground(Color.black); 
    infocontato.setFont(new Font("Arial", Font. BOLD, 12));
    
    email.setVisible(true);
    email.setBounds(435, 32, 100, 20);//Horizontal, Vertical, Largura, Altura
    email.setForeground(Color.black); 
    email.setFont(new Font("Arial", Font. ITALIC, 13));
    
    telefone.setVisible(true);
    telefone.setBounds(435, 85, 80, 20);//Horizontal, Vertical, Largura, Altura
    telefone.setForeground(Color.black); 
    telefone.setFont(new Font("Arial", Font. ITALIC, 13));
    }
    
    
    public void Botoes(){
    //define posicionamento do botão na janela
    botaoInserir.setBounds(6, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoInserir.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoInserir.setVerticalAlignment(SwingConstants.TOP);
    botaoInserir.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonInserir.setIcon(new ImageIcon(getClass().getResource("imagens/NOVO.png")));
    //Adiciona Acão para o Botão
    botaoInserir.addActionListener(new MontaAcaoBotao());

    //define posicionamento do botão na janela
    botaoAlterar.setBounds(97, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoAlterar.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoAlterar.setVerticalAlignment(SwingConstants.TOP);
    botaoAlterar.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonAlterar.setIcon(new ImageIcon(getClass().getResource("imagens/ALTERAR.png")));
    //Adiciona Ação para o Botão
    botaoAlterar.addActionListener(new MontaAcaoBotao());
    
    //define posicionamento do botão na janela
    botaoExcluir.setBounds(188, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoExcluir.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoExcluir.setVerticalAlignment(SwingConstants.TOP);
    botaoExcluir.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonExcluir.setIcon(new ImageIcon(getClass().getResource("imagens/REMOVER.png")));
    //Adiciona Ação para o Botão
    botaoExcluir.addActionListener(new MontaAcaoBotao());
    
    //define posicionamento do botão na janela
    botaoCancelar.setBounds(283, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoCancelar.setVerticalAlignment(SwingConstants.TOP);
    botaoCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonCancelar.setIcon(new ImageIcon(getClass().getResource("imagens/FECHAR.png")));
    //Adiciona Ação para o Botão
    botaoCancelar.addActionListener(new MontaAcaoBotao());
    
    botaoMostrarTab.setBounds(435, 245, 150, 30);
    botaoMostrarTab.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoMostrarTab.setVerticalAlignment(SwingConstants.TOP);
    botaoMostrarTab.setVerticalTextPosition(SwingConstants.BOTTOM);
    botaoMostrarTab.addActionListener(new MontaAcaoBotao());
    }
    
    
    
    @SuppressWarnings("empty-statement")
    public void Tabela(){
    //Define o modelo da tabela
    modelo = new DefaultTableModel();
    //Montando a tabelinha
    tabela = new JTable(modelo);
    

   /* modelo.addColumn("Codigo");
    modelo.addColumn("Nome");
    modelo.addColumn("CPF");
    modelo.addColumn("Telefone");
    modelo.addColumn("E-mail");
    modelo.addColumn("Endereço");
    modelo.addColumn("Numero");
    modelo.addColumn("Bairro");
    modelo.addColumn("Cidade");
    modelo.addColumn("Estado");*/

    scrollpane = new JScrollPane(tabela);
    scrollpane.setBounds(6, 290, 690, 350);//Horizontal, Vertical, Largura, Altura

    
}//Fecha metodo tabela
    
    
    public void Janela(){
    //DETALHE DA JANELA PRINCIPAL
    this.setResizable(true);
    this.setBounds(100, 110, 710, 680);//Horizontal, Vertical, Largura, Altura
    this.setVisible(true);
    this.setTitle("CADASTROS DE ALUNOS");
    }
    
    
private class MontaAcaoBotao implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent ACAO) {
    
    String rnome, rcpf, rend, rbairro, rcidade, remail, rnumero, rtel;
    /*
    rnome = camponome.getText();
    rcpf = cpf.getText();
    rend = campoend.getText();
    rbairro = campobairro.getText();
    rcidade = campocidade.getText();
    remail = campoemail.getText();
    rnumero = camponum.getText();
    rtel = campotelefone.getText();
    */
    
    if(ACAO.getSource()==botaoInserir){
      
        try{
          //utilizando a classe ConexaoBanco (que abre o banco de dados com usuario e senha)
          conexao = ConexaoBanco.getConnection();
      
          //Cria objeto do tipo Statement stmt
          Statement stmt;
          
          //Para levar os comandos SQL
          stmt = conexao.createStatement();
      
          //Criando um ResultSet para receber respostas SQL
          ResultSet rs1;
      
          //Variavel comandosql recebe os comandos em SQL
          comandosql="insert into CadastrosAlunos (nome, cpf, end, numero, bairro, cidade, email, tel) values ('"+ camponome.getText()+"', '"+cpf.getText()+"', '"+campoend.getText()+"','"+camponum.getText()+"','"+campobairro.getText()+"','"+campocidade.getText()+"','"+campoemail.getText()+"','"+campotelefone.getText()+"')";
      
          //aqui o comando de inserção SQL é executado
          stmt.executeUpdate(comandosql);
      
          JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!");
            
          }catch (Exception e){
            e.printStackTrace();
            }
    
    finally{
    try{// bloco para tentativa de fechamento da conexão
    
        if (conexao != null) {
            conexao.close();
        }//Fecha conexão com banco de dados
            }
            catch (Exception e){
                    e.printStackTrace();// caso de erro durante o fechamento da conexão
                    }
    }//Fecha Finally   
   }//Fecha IF do botãoInserir
 
    if(ACAO.getSource()==botaoMostrarTab){
        try{
            conexao = ConexaoBanco.getConnection();
            Statement stmt;
            stmt=conexao.createStatement();
            ResultSet rs1;
            
            rs1 = stmt.executeQuery("select * from CadastrosAlunos");
            ResultSetMetaData rsMd = rs1.getMetaData();
            int quantidadeColunas = rsMd.getColumnCount();
                                   
           for(int i=1; i <= quantidadeColunas; i++){
               modelo.addColumn(rsMd.getColumnLabel(i));
                }

           //MONTA A GRADE DA TABELA
           Object[] fila = new Object[quantidadeColunas];     
           while(rs1.next()){
                
               for(int i=0; i<quantidadeColunas; i++){
                fila[i]=rs1.getObject(i+1);    
                }
                
                modelo.addRow(fila);
                
                }
            
                rs1.close();
                conexao.close();
        }catch(Exception e){
        JOptionPane.showMessageDialog(null,e);
        }
    }
    
    
    }//Fecha void ACAO

        
 }//Fecha Classe ActionListener
}//FECHA CLASSE PRINCIPAL

E esse método de limpar JTable, tinha que ser implementado antes de listar novamente as informações do banco, que é nesse código abaixo (referente a ação do botão LISTAR CADASTRADOS):


if(ACAO.getSource()==botaoMostrarTab){  
        try{  
            conexao = ConexaoBanco.getConnection();  
            Statement stmt;  
            stmt=conexao.createStatement();  
            ResultSet rs1;  
              
            rs1 = stmt.executeQuery("select * from CadastrosAlunos");  
            ResultSetMetaData rsMd = rs1.getMetaData();  
            int quantidadeColunas = rsMd.getColumnCount();  
           
            /*int x = modelo.getRowCount();
               for (int a=0; a<x; a++){
               modelo.removeRow(a);
                }

                         
           for(int i=1; i <= quantidadeColunas; i++){  
               modelo.addColumn(rsMd.getColumnLabel(i));  
                }  
  
           //MONTA A GRADE DA TABELA  
           Object[] fila = new Object[quantidadeColunas];       
           while(rs1.next()){  
                  
               for(int i=0; i<quantidadeColunas; i++){  
                fila[i]=rs1.getObject(i+1);      
                }  
                  
                modelo.addRow(fila);  
                  
                }  
              
                rs1.close();  
                conexao.close();  
        }catch(Exception e){  
        JOptionPane.showMessageDialog(null,e);  
        }  
    }

Agradeço qualquer ajuda!
Abraço!

[quote=Jexploitech]Boa Tarde Pessoal,

depois de 2 anos sem encher o saco de vcs, estou de voltar trazendo uma nova dor de kbça (pra mim O.o");

Bom eh o seguinte, estou criando uma aplicação de cadastros, esta mtooooooo basica por enquanto, esta td certinho com as compilações etc…

tenho uma tabela chamada CadastrosAlunos no oracle tbm, e a função do programa eh simplesmente INSERIR, ALTERAR e EXCLUIR dados do banco.

criei JTextFields que pegam os dados e incluem no banco, isso esta funcionando certinho tbm, as inclusões de dados.

E criei do lado direito um botão escrito LISTAR CADASTRADOS que pega os dados do banco e imprimi na JTABLE, a questão é que:

quando eu clico duas vzs nesse botão LISTAR, ele duplica as Linhas, as Colunas, e lógicamente DADOS, e vai incluindo infinitamente a cada clique que dou nesse botão…

se eu insiro uma informação nova e clico no LISTAR ele vai trazer essa nova informação, mas vai duplicar TUDO o que jah tinha. (isso soh acontece no JTable).

Agora o que eu gostaria de fazer, cujo não sei se é viavel, seria criar uma forma de apagar td conteudo do JTable, e Listar novamente, acredito que assim ele não duplicaria O.o"!!!

Fiz brutas pesquisas sobre como fazer isso, mas nada resolveu meu problema. até mesmo incluindo um metodo que pegasse as linhas como modelo.getRowCount() e depois dentro de um FOR modelo.removeRow();

Li alguns artigos inclusive do ViniGodoy dizendo para não usar o DefaultTableModel pq ele é mto ruim, mas tda as soluções que achei não falavam sobre conexão com banco de dados O.o, principalmente Oracle.

Segue abaixo todo o codigo:
Obs: Ainda não implementei Orientacao a objetos.

package dmrsistemas;


import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;


public class CadastrosAlunos extends JFrame{
/*Criando os Componentes da Tela*/

    //Dados relacionados com o banco de dados
    static Connection conexao;
    String comandosql;
    
    
    //Criando Tabela para o banco
    private JScrollPane scrollpane;
    private JTable tabela;

    private JLabel infosgerais = new JLabel("Informações Gerais");
    private JLabel nome = new JLabel("Nome");
    private JLabel CPF = new JLabel("CPF (somente numeros)");
    private JLabel infosresidenciais = new JLabel("Informações Residenciais");
    private JLabel endereco = new JLabel("Endereço");
    private JLabel numero = new JLabel("Numero");
    private JLabel bairro = new JLabel("Bairro");
    private JLabel cidade = new JLabel("Cidade");
    private JLabel infocontato = new JLabel("Informações de Contato");
    private JLabel email = new JLabel("Email");
    private JLabel telefone = new JLabel("Telefone");
    
    private JTextField camponome = new JTextField(5);
    private JTextField campoend = new JTextField(10);
    private JTextField camponum = new JTextField(6);
    private JTextField campobairro = new JTextField(10);
    private JTextField campocidade = new JTextField(10);
    private JTextField campoemail = new JTextField(10);
    private JFormattedTextField campotelefone = new JFormattedTextField();
    
    private JFormattedTextField cpf = new JFormattedTextField();
    private JFormattedTextField datanasc = new JFormattedTextField();
    
    private JButton botaoInserir = new JButton("Inserir");
    private JButton botaoAlterar = new JButton("Alterar");
    private JButton botaoExcluir = new JButton("Excluir");
    private JButton botaoCancelar = new JButton("Cancelar");
    private JButton botaoMostrarTab = new JButton("Listar Cadastrados");

    //private static InterfaceCadastros INSTANCE = null;
    
    //definindo o modelo da tabela
    private DefaultTableModel modelo;
    //Método que constrói a janela da agenda
    
    
    
    
    //FUNCAO PRINCIPAL DA CLASSE - Chama metodo principal
    public static void Cadastros(){
    new CadastrosAlunos().InterfaceCadastros();    
    }
      
    
    
    public void InterfaceCadastros(){
     Textos();
     Campos();
     Botoes();
     Tabela();    
     Organizador();
     Janela();
    }
    

    public void Organizador(){
        
    Container Painel = new Container();
    this.getContentPane().add(Painel);
    //Painel.setLayout(null);
    Painel.add(infosgerais);
    
    Painel.add(nome);
    Painel.add(camponome);
    Painel.add(cpf);
    Painel.add(CPF);
    
    Painel.add(infosresidenciais);
    
    Painel.add(endereco);
    Painel.add(campoend);
    Painel.add(numero);
    Painel.add(camponum);
    Painel.add(bairro);
    Painel.add(campobairro);
    Painel.add(cidade);
    Painel.add(campocidade);
    
    Painel.add(infocontato);
    
    Painel.add(email);
    Painel.add(campoemail);
    Painel.add(telefone);
    Painel.add(campotelefone);
    
    Painel.add(botaoInserir);
    Painel.add(botaoAlterar);
    Painel.add(botaoExcluir);
    Painel.add(botaoCancelar);
    Painel.add(botaoMostrarTab);
    Painel.add(scrollpane);
    
    }
    

    public void Campos(){
    
    camponome.setVisible(true);
    camponome.setBounds(5, 55, 250, 20);//Horizontal, Vertical, Largura, Altura
    
    cpf.setVisible(true);
    cpf.setBounds(5, 110, 150, 20);//Horizontal, Vertical, Largura, Altura
    
    campoend.setVisible(true);
    campoend.setBounds(5, 210, 250, 20);//Horizontal, Vertical, Largura, Altura
    
    camponum.setVisible(true);
    camponum.setBounds(265, 210, 50, 20);//Horizontal, Vertical, Largura, Altura
    
    campobairro.setVisible(true);
    campobairro.setBounds(325, 210, 100, 20);//Horizontal, Vertical, Largura, Altura
    
    campocidade.setVisible(true);
    campocidade.setBounds(435, 210, 100, 20);//Horizontal, Vertical, Largura, Altura
    
    campoemail.setVisible(true);
    campoemail.setBounds(435, 55, 250, 20);
    
    campotelefone.setVisible(true);
    campotelefone.setBounds(435, 110, 150, 20);//Horizontal, Vertical, Largura, Altura
    }

    
    
    public void Textos(){
    
    infosgerais.setVisible(true);
    infosgerais.setBounds(5, 5, 120, 20);//Horizontal, Vertical, Largura, Altura
    infosgerais.setForeground(Color.black); 
    infosgerais.setFont(new Font("Arial", Font. BOLD, 12));
    
    nome.setVisible(true);
    nome.setBounds(5, 32, 100, 20);//Horizontal, Vertical, Largura, Altura
    nome.setForeground(Color.black); 
    nome.setFont(new Font("Arial", Font. ITALIC, 13));
    
    CPF.setVisible(true);
    CPF.setBounds(5, 85, 150, 20);//Horizontal, Vertical, Largura, Altura
    CPF.setForeground(Color.black); 
    CPF.setFont(new Font("Arial", Font. ITALIC, 13));
 
    infosresidenciais.setVisible(true);
    infosresidenciais.setBounds(5, 160, 150, 20);//Horizontal, Vertical, Largura, Altura
    infosresidenciais.setForeground(Color.black); 
    infosresidenciais.setFont(new Font("Arial", Font. BOLD, 12));
    
    endereco.setVisible(true);
    endereco.setBounds(5, 185, 150, 20);//Horizontal, Vertical, Largura, Altura
    endereco.setForeground(Color.black); 
    endereco.setFont(new Font("Arial", Font. ITALIC, 13));
    
    numero.setVisible(true);
    numero.setBounds(265, 185, 80, 20);//Horizontal, Vertical, Largura, Altura
    numero.setForeground(Color.black); 
    numero.setFont(new Font("Arial", Font. ITALIC, 13));

    bairro.setVisible(true);
    bairro.setBounds(325, 185, 80, 20);//Horizontal, Vertical, Largura, Altura
    bairro.setForeground(Color.black); 
    bairro.setFont(new Font("Arial", Font. ITALIC, 13));
    
    cidade.setVisible(true);
    cidade.setBounds(435, 185, 800, 20);//Horizontal, Vertical, Largura, Altura
    cidade.setForeground(Color.black); 
    cidade.setFont(new Font("Arial", Font. ITALIC, 13));
    
    infocontato.setVisible(true);
    infocontato.setBounds(435, 5, 150, 20);//Horizontal, Vertical, Largura, Altura
    infocontato.setForeground(Color.black); 
    infocontato.setFont(new Font("Arial", Font. BOLD, 12));
    
    email.setVisible(true);
    email.setBounds(435, 32, 100, 20);//Horizontal, Vertical, Largura, Altura
    email.setForeground(Color.black); 
    email.setFont(new Font("Arial", Font. ITALIC, 13));
    
    telefone.setVisible(true);
    telefone.setBounds(435, 85, 80, 20);//Horizontal, Vertical, Largura, Altura
    telefone.setForeground(Color.black); 
    telefone.setFont(new Font("Arial", Font. ITALIC, 13));
    }
    
    
    public void Botoes(){
    //define posicionamento do botão na janela
    botaoInserir.setBounds(6, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoInserir.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoInserir.setVerticalAlignment(SwingConstants.TOP);
    botaoInserir.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonInserir.setIcon(new ImageIcon(getClass().getResource("imagens/NOVO.png")));
    //Adiciona Acão para o Botão
    botaoInserir.addActionListener(new MontaAcaoBotao());

    //define posicionamento do botão na janela
    botaoAlterar.setBounds(97, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoAlterar.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoAlterar.setVerticalAlignment(SwingConstants.TOP);
    botaoAlterar.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonAlterar.setIcon(new ImageIcon(getClass().getResource("imagens/ALTERAR.png")));
    //Adiciona Ação para o Botão
    botaoAlterar.addActionListener(new MontaAcaoBotao());
    
    //define posicionamento do botão na janela
    botaoExcluir.setBounds(188, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoExcluir.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoExcluir.setVerticalAlignment(SwingConstants.TOP);
    botaoExcluir.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonExcluir.setIcon(new ImageIcon(getClass().getResource("imagens/REMOVER.png")));
    //Adiciona Ação para o Botão
    botaoExcluir.addActionListener(new MontaAcaoBotao());
    
    //define posicionamento do botão na janela
    botaoCancelar.setBounds(283, 245, 90, 30);//Horizontal, Vertical, Largura, Altura
    botaoCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoCancelar.setVerticalAlignment(SwingConstants.TOP);
    botaoCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
    //buttonCancelar.setIcon(new ImageIcon(getClass().getResource("imagens/FECHAR.png")));
    //Adiciona Ação para o Botão
    botaoCancelar.addActionListener(new MontaAcaoBotao());
    
    botaoMostrarTab.setBounds(435, 245, 150, 30);
    botaoMostrarTab.setHorizontalTextPosition(SwingConstants.CENTER);
    botaoMostrarTab.setVerticalAlignment(SwingConstants.TOP);
    botaoMostrarTab.setVerticalTextPosition(SwingConstants.BOTTOM);
    botaoMostrarTab.addActionListener(new MontaAcaoBotao());
    }
    
    
    
    @SuppressWarnings("empty-statement")
    public void Tabela(){
    //Define o modelo da tabela
    modelo = new DefaultTableModel();
    //Montando a tabelinha
    tabela = new JTable(modelo);
    

   /* modelo.addColumn("Codigo");
    modelo.addColumn("Nome");
    modelo.addColumn("CPF");
    modelo.addColumn("Telefone");
    modelo.addColumn("E-mail");
    modelo.addColumn("Endereço");
    modelo.addColumn("Numero");
    modelo.addColumn("Bairro");
    modelo.addColumn("Cidade");
    modelo.addColumn("Estado");*/

    scrollpane = new JScrollPane(tabela);
    scrollpane.setBounds(6, 290, 690, 350);//Horizontal, Vertical, Largura, Altura

    
}//Fecha metodo tabela
    
    
    public void Janela(){
    //DETALHE DA JANELA PRINCIPAL
    this.setResizable(true);
    this.setBounds(100, 110, 710, 680);//Horizontal, Vertical, Largura, Altura
    this.setVisible(true);
    this.setTitle("CADASTROS DE ALUNOS");
    }
    
    
private class MontaAcaoBotao implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent ACAO) {
    
    String rnome, rcpf, rend, rbairro, rcidade, remail, rnumero, rtel;
    /*
    rnome = camponome.getText();
    rcpf = cpf.getText();
    rend = campoend.getText();
    rbairro = campobairro.getText();
    rcidade = campocidade.getText();
    remail = campoemail.getText();
    rnumero = camponum.getText();
    rtel = campotelefone.getText();
    */
    
    if(ACAO.getSource()==botaoInserir){
      
        try{
          //utilizando a classe ConexaoBanco (que abre o banco de dados com usuario e senha)
          conexao = ConexaoBanco.getConnection();
      
          //Cria objeto do tipo Statement stmt
          Statement stmt;
          
          //Para levar os comandos SQL
          stmt = conexao.createStatement();
      
          //Criando um ResultSet para receber respostas SQL
          ResultSet rs1;
      
          //Variavel comandosql recebe os comandos em SQL
          comandosql="insert into CadastrosAlunos (nome, cpf, end, numero, bairro, cidade, email, tel) values ('"+ camponome.getText()+"', '"+cpf.getText()+"', '"+campoend.getText()+"','"+camponum.getText()+"','"+campobairro.getText()+"','"+campocidade.getText()+"','"+campoemail.getText()+"','"+campotelefone.getText()+"')";
      
          //aqui o comando de inserção SQL é executado
          stmt.executeUpdate(comandosql);
      
          JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!");
            
          }catch (Exception e){
            e.printStackTrace();
            }
    
    finally{
    try{// bloco para tentativa de fechamento da conexão
    
        if (conexao != null) {
            conexao.close();
        }//Fecha conexão com banco de dados
            }
            catch (Exception e){
                    e.printStackTrace();// caso de erro durante o fechamento da conexão
                    }
    }//Fecha Finally   
   }//Fecha IF do botãoInserir
 
    if(ACAO.getSource()==botaoMostrarTab){
        try{
            conexao = ConexaoBanco.getConnection();
            Statement stmt;
            stmt=conexao.createStatement();
            ResultSet rs1;
            
            rs1 = stmt.executeQuery("select * from CadastrosAlunos");
            ResultSetMetaData rsMd = rs1.getMetaData();
            int quantidadeColunas = rsMd.getColumnCount();
                                   
           for(int i=1; i <= quantidadeColunas; i++){
               modelo.addColumn(rsMd.getColumnLabel(i));
                }

           //MONTA A GRADE DA TABELA
           Object[] fila = new Object[quantidadeColunas];     
           while(rs1.next()){
                
               for(int i=0; i<quantidadeColunas; i++){
                fila[i]=rs1.getObject(i+1);    
                }
                
                modelo.addRow(fila);
                
                }
            
                rs1.close();
                conexao.close();
        }catch(Exception e){
        JOptionPane.showMessageDialog(null,e);
        }
    }
    
    
    }//Fecha void ACAO

        
 }//Fecha Classe ActionListener
}//FECHA CLASSE PRINCIPAL

E esse método de limpar JTable, tinha que ser implementado antes de listar novamente as informações do banco, que é nesse código abaixo (referente a ação do botão LISTAR CADASTRADOS):


if(ACAO.getSource()==botaoMostrarTab){  
        try{  
            conexao = ConexaoBanco.getConnection();  
            Statement stmt;  
            stmt=conexao.createStatement();  
            ResultSet rs1;  
              
            rs1 = stmt.executeQuery("select * from CadastrosAlunos");  
            ResultSetMetaData rsMd = rs1.getMetaData();  
            int quantidadeColunas = rsMd.getColumnCount();  
           
            /*int x = modelo.getRowCount();
               for (int a=0; a<x; a++){
               modelo.removeRow(a);
                }

                         
           for(int i=1; i <= quantidadeColunas; i++){  
               modelo.addColumn(rsMd.getColumnLabel(i));  
                }  
  
           //MONTA A GRADE DA TABELA  
           Object[] fila = new Object[quantidadeColunas];       
           while(rs1.next()){  
                  
               for(int i=0; i<quantidadeColunas; i++){  
                fila[i]=rs1.getObject(i+1);      
                }  
                  
                modelo.addRow(fila);  
                  
                }  
              
                rs1.close();  
                conexao.close();  
        }catch(Exception e){  
        JOptionPane.showMessageDialog(null,e);  
        }  
    }

Agradeço qualquer ajuda!
Abraço![/quote]

Sim realmente você não deve usar DefaultTableModel, sobre a conexão não misture as coisas, Conexão com o banco de dados deve estar totalmente separada da aplicação SWING.
Você deve criar uma classe para efetuar a conexão com o banco de dados, nesta classe você pode implementar uma CRUD, “Create Retrieve Update Delete” ou “Criar, Recuperar, Atualizar e Deletar”, Cada método destes vai ter exatamente esta função, e vai trazer este valores para você dentro de um List

http://www.guj.com.br/java/120933-conexao-com-banco-de-dados-oracle-10g-express de uma olhada neste tópico para aprender a criar uma conexão com o oracle

Sobre o tablemodel vai ter uma lista na sua classe principal, provavelmente global, onde, esta sua lista na verdade vão ser os dados da sua tabela, você ja terá os dados que os métodos que você criou na CRUD irão trazer pra você, você só precisará adiciona-los no JTable, com esta ideia tente implementar o seu próprio TableModel, quando você pegar o jeito irá entender porquê não usar DefaultTableModel

este tópico pode te ajudar:

http://www.guj.com.br/articles/147 não se preocupe com a quantidade de texto, é algo bem simples, que uma pessoa que já conhece como faz leva no máximo 30 minutos para implementar um TableModel básico que é o que você precisa

Att,

Boa Noite LVentura,

Agradeço o retorno. Vou começar a pensar dessa forma, implementar meu proprio TableModel.

Obrigado pelos links!

Boa Noite!
Até Mais!