Redundancia de linhas no JTable!

5 respostas
banger

fala gente blz??

seguinte eu tenho um metodo que conecta com o banco e preenche uma table, quando preciono um botao de action, a table abre o frame dah tabela com as infos certinho!

mas quando eu fecho e abro denovo ele novamente busca as infos do banco e dobra as linhas com as mesmas infos.

alguem sabe como eu posso fazer com que ele busque soh uma vez e naum repita as infos?

meu actionEvent que inicia o metodo:

BDconnectionS();
        StatusSaida.setVisible(true);
        StatusSaida.setSize(1122, 730);
        SendMsg = FrameMsg.mSaidaS;

e o metodo BDConnection para acessar o banco:

public void BDconnectionS() {

    //Linhas Da Tabela da tabela
   String col0, col1, col2, col3, col4;
   String col5 = null;
   
   
    Object[] linhas;

    try {
         // Carregando o Driver
         Class.forName(driver);
         // Efetuando a Conexao
         con = DriverManager.getConnection(URL, "root", "");         
         stmt = con.createStatement();
                 String resultado = "select * from manutencao where entsaida like 'saida%' ";
                 rs = stmt.executeQuery(resultado);
                 if(rs != null)
                     while(rs.next()) {
                     col0 = rs.getString("entsaida");
                     col1 = rs.getString("descricao");
                     col2 = rs.getString("conector");
                     col3 = rs.getString("pino");
                     col4 = rs.getString("tipo");
                     
                     linhas = new Object[] {col0, col1, col2, col3, col4,col5, "Ativar/Desativar"};
                     modelo.addRow(linhas);

                     }

                 // desliga o auto_RESIZE
                 TSaida.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

                 // seta as colunas com o tamnaho desejado
                 int[] colW = new int [] {0,1,2,3,4,5,6};

                 TableColumn cols0 = TSaida.getColumnModel().getColumn(colW[0]);
                 TableColumn cols1 = TSaida.getColumnModel().getColumn(colW[1]);
                 TableColumn cols2 = TSaida.getColumnModel().getColumn(colW[2]);
                 TableColumn cols3 = TSaida.getColumnModel().getColumn(colW[3]);
                 TableColumn cols4 = TSaida.getColumnModel().getColumn(colW[4]);
                 TableColumn cols5 = TSaida.getColumnModel().getColumn(colW[5]);
                 TableColumn cols6 = TSaida.getColumnModel().getColumn(colW[6]);

                 int[] width = new int [] {55, 520, 55, 35, 40, 70, 130};
                 cols0.setPreferredWidth(width[0]);
                 cols1.setPreferredWidth(width[1]);
                 cols2.setPreferredWidth(width[2]);
                 cols3.setPreferredWidth(width[3]);
                 cols4.setPreferredWidth(width[4]);
                 cols5.setPreferredWidth(width[5]);
                 cols6.setPreferredWidth(width[6]);



                 SetModelo(TSaida);
                 ButtonColumn col7 = new ButtonColumn(TSaida, 6);
                 
                

         // Fechar Conexao
         con.close();
      } catch (ClassNotFoundException e) {
         JOptionPane.showMessageDialog(null, "Erro no Driver");
      }
      catch (SQLException objErroConexao) {
         JOptionPane.showMessageDialog(null, "Erro na Conexao" + objErroConexao);
      }
   }

5 Respostas

ViniGodoy

Pelo visto você se perdeu no seu próprio código. Normal, é difícil mesmo quando vc mistura todas as coisas assim.

Sugiro fortemente que você:
a) Comece definindo classes de negócio para seus dados (como a classe Manutencao);
b) Depois, crie classes que façam as operações de banco, os tais DAOs.
c) Finalmente, crie um TableModel para sua classe de Manutencao (ManutencaoTableModel).

banger

entaum mas tem uma solução diferente tpw eu pegar como parametro a abertura e o fechamento do frame e inicializar um remove row a partir dai?

banger

e tpw o que seria clase de negocio??

Marky.Vasconcelos

Uma classe de negocio seria um objeto que representa seu modelo.
Exemplo seria uma classe Pessoa, Carro, Pao, Peixe ou qualquer outro objeto.

ViniGodoy

Dê uma olhada nesse tópico: http://www.guj.com.br/posts/preList/211010/1073675.java#1073675

Só que no lugar de “Amigo”, você criará uma classe chamada “Manutencao”.

Criado 29 de junho de 2010
Ultima resposta 29 de jun. de 2010
Respostas 5
Participantes 3