[SWING] Ajuda com o Jtable

1 resposta
F

Pessoal;
Bom dia!

Estou gatinhando em java e enrosquei numa necessidade, espero poder contar com a ajuda de vocês.

Tenho um método em uma classe que me retorna um Objeto[]:

public MovEstq[] consEstq(String vDataIni, String vDataFim){
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        ArrayList al = new ArrayList();
        MovEstq movimento = new MovEstq();
        
        String sqlSelProduto  = "SELECT B1_COD, B1_PRODALT FROM SB1010 WHERE D_E_L_E_T_ <> '*' AND B1_COD <='01010999' ORDER BY B1_PRODALT";
        Integer vQtdSaldoIni = 0;
        Integer vQtdProducao = 0;
        
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        
        try {
            conn=DriverManager.getConnection(url,user,password);
            ps=conn.prepareStatement(sqlSelProduto);
            
            rs=ps.executeQuery();
            
            while (rs.next()) {
                movimento=new MovEstq();
                vQtdSaldoIni=consSaldoIni(rs.getString(1),vDataFim);
                vQtdProducao=consProducao(vDataIni, vDataFim, rs.getString(1));
                movimento.setSaldoIni(vQtdSaldoIni);
                movimento.setQtdProducao(vQtdProducao);
                al.add(movimento);
            }
            
            ps.close();
            rs.close();
            conn.close();
            
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        
	MovEstq[] movimentoAux = (MovEstq[])al.toArray(new MovEstq[al.size()]);
	return(movimentoAux);
    }

Gostaria de pegar estes dados e jogar um JTable. Inseri o JTable pelo NB (tempo de projeto) e (conforme li em alguns artigos) inseri o código:

String[] colunas = new String[] {"Produto:","Estq Inicial:","Entradas:","Faturamento:","Perdas:","Saldo Final"} ;
        MovEstq[] dados=dao.consEstq(vDataIni, vDataFim);

        JTable jTable = new JTable(dados, colunas);
        DefaultTableModel modelo = new DefaultTableModel(dados, colunas);
        JTable jtable = new JTable( modelo ); 
        jTable1.setModel(modelo);

Acontece que o objeto MovEstq[] não é aceito, dá a mensagem que não existe um construtor que tenha este objeto. Poderiam me auxiliar neste caso?

Desde já agradeço a atenção!

Abraço!

Marco A.

1 Resposta

RaulCarlin

Você tem que criar um TableModel que aceite esse seu objeto, exemplo:

public class EstoqueTableModel extends AbstractTableModel {
...
}

Quando você criar esta classe, o compilador já vai identificar os métodos que você têm que sobreescrever, como o getValueAt(), getColumnName(), etc… tendo o objeto Estoque[] dentro desta classe você pode navegar utilizando o rowIndex da tabela, faz um aí que você entenderá…

Leia mais sobre isto, tem muitos exemplos na net…

Criado 24 de abril de 2008
Ultima resposta 24 de abr. de 2008
Respostas 1
Participantes 2