Porque não exibe a tela?

Cordiais saudações, povo do GUJ.

Estou com um programa de relatório bem simples, mas ele deveria mostrar uma tela com dois botões e label, porém isto não ocorre. É uma classe que extend JPanel e no menu a chamada é a que está abaixo:

        miRelatorioClientes.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                bloqueiaMenu();
                ImprimeClientes label = new ImprimeClientes();
                contentPane.removeAll();
                contentPane.add(label);
                contentPane.validate();
            }
        });

A classe que não exibe o seu conteúdo e que deveria imprimir um relatório é a que está abaixo:

package imprime;

import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
import dao.CliDAO;
import empresavi.BD;
import empresavi.GuiMenuPrincipal;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import model.Clientes;

/**
 *
 * @author Ronaldo Rodrigues Godoi
 */
public class ImprimeClientes extends JPanel{

    CliDAO clientes;
    JLabel lbTituloTela, lbImprimindo;
    JButton btImprimir, btSair; 
    Clientes cliente;
    ArrayList<Clientes> listaClientes = new ArrayList<>();
    Document documentPDF = new Document();
    

    public void ImprimeCliente() {
        inicializarComponentes();
        definirEventos();
    }
    
    public void inicializarComponentes() {
        
        setLayout(null);
        
        lbTituloTela = new JLabel(" Impressão da lista de Clientes ");
        Font font = new Font("San Serif", Font.PLAIN, 24);
        lbTituloTela.setFont(font);
        lbTituloTela.setBounds(200, 200, 400, 50);
        
        lbImprimindo = new JLabel("");
        lbImprimindo.setBounds(100, 400, 200, 25);
                
        btImprimir = new JButton(" Imprimir Relatório de Clientes ");
        btImprimir.setBounds(200, 600, 200, 25);
        
        btSair = new JButton(" Sair ");
        btSair.setBounds(200, 700, 200, 25);
                
        add(lbTituloTela);
        add(lbImprimindo);
        add(btImprimir);
        add(btSair);
        
        clientes = new CliDAO();        
    }
    
    public void definirEventos() {
        
        btImprimir.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                imprimirRelatorioClientes();
            }
        });
        
        btSair.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                GuiMenuPrincipal.liberaMenu();
                BD.getInstance().close();
                setVisible(false);
            }
        });
        
    }
    
    public void imprimirRelatorioClientes() {
        listaClientes = clientes.listarClientes();
        if(listaClientes == null) {
            JOptionPane.showMessageDialog(null, "Cadastro de Clientes está vazio!");
            return;
        }
        try {
            PdfWriter.getInstance(documentPDF, new FileOutputStream("ListaClientes.pdf"));
            documentPDF.open();
            Paragraph cabecalho = new Paragraph(
                    "Relatório de Clientes\n"
                    + "_______________________________________________________________");
            cabecalho.setAlignment(Element.ALIGN_CENTER);
            documentPDF.add(cabecalho);
            for(int i = 0; i < listaClientes.size(); i++) {
                Paragraph clienteatual = new Paragraph("CGC ou CPF: " + listaClientes.get(i).getId_cgc_cpf() +
                        " Nome ou razão social: " + listaClientes.get(i).getNome_razao() + "\n" +
                        "Endereço: " + listaClientes.get(i).getEndereco() +
                        " Número: " + listaClientes.get(i).getNumero() +
                        " Cidade: " + listaClientes.get(i).getCidade());
                documentPDF.add(clienteatual);
                documentPDF.add(new Paragraph(" "));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao gerar relatório de Clientes!\n" + e);
        }
        
        documentPDF.close();
        
        // parei aqui, falta escrever o método listarClientes no DAO
    }
}

Deve ser algo simples mas eu queria dizer em minha defesa que é meu primeiro aplicativo e que estou estudando por conta (com ajuda do pessoal do GUJ).

Muito obrigado,
Ronaldo

Tem certeza de que você implementou esse construtor sem parâmetros?

1 curtida

Sim, não tem parâmetros. Veja no código fonte da mensagem anterior.

Sim eu olhei e não encontrei esse construtor.
Só tem um método com nome igual.
É um errinho bobo que você comete de vez em quando.

1 curtida

Valeu, Staroski…

1 curtida