Inserça de dados em uma jtable

5 respostas
maicon.santiago

Criei um internal frame …para que ele receba os valores que seram inserido na jtable.

ele calcula valores default caso nenhum valor seja inserido e tudo…,

soh que na hora de criar o insertRow() nao sei como relaciona-lo a jtable que se encontra em outra classe ,a qual chama esse internal atraves de uma actionlistener.

try{ insertdados dados = new insertdados(); dados.setVisible(true); }catch(Exception e ){ System.out.println(e); }

Como faço para que inserir os dados no frame da table e essa eh a forma correta de invocar um internalframe??

Desde jah agradeço!!

5 Respostas

M

Neste pedaço de codigo, eu faço a conexao no banco de dados, e insiro os dados na tabela.
Espero que ajude...

falow

public static boolean montaTabela(String sql){
        ResultSet rs= ConexaoBD.Conexao.Consulta(sql);
        DefaultTableModel aModel = (DefaultTableModel) Interface.Frame_principal.jTBL_tabela.getModel();
        aModel.setNumRows(0);
        Interface.Frame_principal.jTBL_tabela.setModel(aModel);
        try {
            rsmd=rs.getMetaData();
            int qtdcolunas = rsmd.getColumnCount();
            System.out.println("Quantidades Colunas: "+qtdcolunas);
            
            String [] tablecoluns = new String[qtdcolunas];
            while(rs.next()){
                Object [] obj= new Object[qtdcolunas];
                for(int i=0;i<qtdcolunas;i++){
                    obj[i]=rs.getObject(i+1);
                    tablecoluns[i] = rsmd.getColumnName(i+1);
                    //System.out.println("Nome da Coluna: "+rsmd.getColumnName(i+1));
                    //System.out.println("Nome da Coluna Obj: "+obj[i]);
                    
                }
                aModel.setColumnIdentifiers(tablecoluns);
                aModel.addRow(obj);
            }    
            
        } catch (SQLException ex) {
            System.err.println("SQLException MontaTabela: " + ex.getMessage());
            return false;
        }catch(Exception ex){
            System.err.println("Exception MontaTabela: " + ex.getMessage());
            return false;
        }
        // Metodo que define o tamanho das colunas
        tamanhoColuna();
        
        Interface.Frame_principal.jTBL_tabela.setModel(aModel);
        
        return true;
    }

   public static boolean tamanhoColuna(){
        
        int vcolindex=0;
        int width=70;
        
        Interface.Frame_principal.jTBL_tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        Interface.Frame_principal.jTBL_tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        TableColumn col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex = 1;
        width = 450;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=2;
        width=220;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=3;
        width=50;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=4;
        width=60;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=5;
        width=60;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=6;
        width=60;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        vcolindex=7;
        width=170;
        col = Interface.Frame_principal.jTBL_tabela.getColumnModel().getColumn(vcolindex);
        col.setPreferredWidth(width);
        
        return true;
    }
maicon.santiago

Soh que nao estou usando um banco de dados para conseguir os dados e sim de um frame no qual insiro os dados…e dpois crio o object[dados] soh que nao estou conseguindo enviar esses valores a um outro frame no qual esta a tabela,que atraves de um evento chama o primeiro frame…como se fosse um jDiallog
entendeu??

Ratao

Crie um constructor na classe que vc chama a qual receba como parâmetro os dados que vc está enviando da 1ª janela. Assim quando instanciada a partir desde constructor a nova classe já terá os valores passados como parâmetro.

maicon.santiago

Vou tentar aqui…qualquer coisa posto aqui…por enquanto obrigado!!

M

Ae colega

Segue um exemplo do seu problema, espero que ajude.

Tem usando um objeto e outro passando uma arraylist.
Se tiver duvida estou a disposição para esclarecimento.

falow

Criado 17 de janeiro de 2008
Ultima resposta 18 de jan. de 2008
Respostas 5
Participantes 3