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