[Resolvido] Mostrar ultimas 5 linhas nos jLabel's (Swing)

5 respostas Resolvido
java
rodriguesabner

trar

E ae galera, beleza? Tô com uma dúvida de matar aqui, vocês sabem se é possível fazer isso?

JAVA SWING

Eu tenho 5 paineis com suas respectivas jLabels, e eu queria mostrar as últimas 5 vendas nesses painéis.

Meu sql mostraVendas("select * from venda inner join cliente on venda.idcliente = cliente.id order by venda.id DESC LIMIT 5");

public void mostraVendas(String SQL) {
        conecta.executaSQL(SQL);
        try {
            conecta.rs.first();
            do {
                codvenda.setText(conecta.rs.getString("id"));
                campocliente.setText(conecta.rs.getString("nome"));
                campodata.setText(conecta.rs.getString("data"));
                campovalor.setText(conecta.rs.getString("valor"));
                campopagamento.setText(conecta.rs.getString("formapagamento"));
                
                Double resultado = Double.parseDouble(campovalor.getText());
                DecimalFormat d = new DecimalFormat("¤ 0.00");
                Locale l = new Locale("pt", "BR");
                NumberFormat c = NumberFormat.getCurrencyInstance(l);
                campovalor.setText(d.format(resultado));
                
                //**********************************************************
                
                codvenda1.setText(conecta.rs.getString("id"));
                campocliente1.setText(conecta.rs.getString("nome"));
                campodata1.setText(conecta.rs.getString("data"));
                campovalor1.setText(conecta.rs.getString("valor"));
                campopagamento1.setText(conecta.rs.getString("formapagamento"));
                
                Double resultado1 = Double.parseDouble(campovalor1.getText());
                DecimalFormat d1 = new DecimalFormat("¤ 0.00");
                Locale l1 = new Locale("pt", "BR");
                NumberFormat c1 = NumberFormat.getCurrencyInstance(l1);
                campovalor1.setText(d1.format(resultado1));
                                
                //**********************************************************
                
                codvenda2.setText(conecta.rs.getString("id"));
                campocliente2.setText(conecta.rs.getString("nome"));
                campodata2.setText(conecta.rs.getString("data"));
                campovalor2.setText(conecta.rs.getString("valor"));
                campopagamento2.setText(conecta.rs.getString("formapagamento"));     
                
                Double resultado2 = Double.parseDouble(campovalor2.getText());
                DecimalFormat d2 = new DecimalFormat("¤ 0.00");
                Locale l2 = new Locale("pt", "BR");
                NumberFormat c2 = NumberFormat.getCurrencyInstance(l2);
                campovalor2.setText(d2.format(resultado2));
                                
                //**********************************************************
                
                                
                //**********************************************************
            } while (conecta.rs.next());
        } catch (SQLException ex) {

        }
    }

5 Respostas

Jederson_Andre

Um contador não resolveria??
Cara sua interface ficou muito top heim… vc usou Swing ou Java Fx ?

rodriguesabner

Como assim contador? “Select count”?

Valeu!! Eu usei o swing cara!

Jederson_Andre
Eu faria assim:

Iria recuperar a os dados e armazenar em um List<tipo_do_objeto>;

Depois iria percorrer a Lista, do ultimo para o primeiro, assim colocaria um contador, que fosse decrementando a cada iteração, até atingir a quantidade de 5 posições;
rodriguesabner

Assim que eu chegar em casa eu tento isso, valeu cara!

rodriguesabner
Solucao aceita

Cara, só pra dar um update aqui, eu consegui fazer isso, de um jeito difícil, mas foi!!!

Primeiro eu trabalhei com o banco de dados usando o limit e order by decrescente
depois no resultset eu só chamei cada rs como last, então como a ordem era descrescente
ele chamava sempre o “último registro mais antigo”

Se eu use o limit 2, ele me mostra o (2,1). Bom, custou mas foi. Valeu pelo help

public void atualizarVendas() { // Isso atualiza as minhas vendas do menu principal de 1 em 1 segundo
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            mostraVendas("SELECT * FROM venda INNER JOIN cliente ON venda.idcliente = cliente.id ORDER BY venda.id");
            mostraVendas1("SELECT * FROM venda INNER JOIN cliente ON venda.idcliente = cliente.id ORDER BY venda.id DESC LIMIT 2"); 
            mostraVendas2("SELECT * FROM venda INNER JOIN cliente ON venda.idcliente = cliente.id ORDER BY venda.id DESC LIMIT 3"); 
            mostraVendas3("SELECT * FROM venda INNER JOIN cliente ON venda.idcliente = cliente.id ORDER BY venda.id DESC LIMIT 4"); 
            mostraVendas4("SELECT * FROM venda INNER JOIN cliente ON venda.idcliente = cliente.id ORDER BY venda.id DESC LIMIT 5"); 
            //preencherTabelaRecebimento("SELECT * FROM receber WHERE dono like'%"+nomeusuario.getText()+"%'");
        }
    }, 1000, 1000);
}


public void mostraVendas(String SQL) {
    conecta.conexao();
    conecta.executaSQL(SQL);
    try {
        conecta.rs.last();
        do {
            codvenda.setText(conecta.rs.getString("id"));
            campocliente.setText(conecta.rs.getString("nome"));
            campodata.setText(String.valueOf(conecta.rs.getString("data")));
            campovalor.setText(conecta.rs.getString("valor"));
            campopagamento.setText(conecta.rs.getString("formapagamento"));

            Double resultado = Double.parseDouble(campovalor.getText());
            DecimalFormat d = new DecimalFormat("¤ 0.00");
            Locale l = new Locale("pt", "BR");
            NumberFormat c = NumberFormat.getCurrencyInstance(l);
            campovalor.setText(d.format(resultado));
            //**********************************************************
        } while (conecta.rs.next());
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao mostrar\n"+ex);
    }
    conecta.desconecta();
}
Criado 18 de maio de 2018
Ultima resposta 22 de mai. de 2018
Respostas 5
Participantes 2