|
Caros Javaneses,
Baixei do site da Sun um programa (tutorial) que
mostra como pode ser gerado um relatório contendo páginas com
layouts diferentes. Fiz algumas modificações no programa e
após muita ralação decidi pedir ajuda. O programa que segue
atachado em um arquivo .txt deveria imprimir duas páginas: Na primeira, o
programa está imprimindo corretamente o texto "Primeira
Página". Na segunda página, no entanto, onde deveria ser
impresso o texto "Segunda Página", não está
aparecendo nada, isto é, a página é impressa em branco.
Alguém saberia dizer porque isto está acontecendo?
Muito obrigado pela
atenção.
|
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.print.*;
public class Relatorio extends JPanel implements ActionListener
{ final static JButton button = new JButton("Imprimir");
public Relatorio()
{ button.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{ PrinterJob job = PrinterJob.getPrinterJob();
PageFormat portrait = job.defaultPage();
Book bk = new Book();
bk.append(new PrimeiraPagina(), portrait);
bk.append(new SegundaPagina(), portrait);
job.setPageable(bk);
if (job.printDialog())
{ try { job.print(); }
catch (Exception exc) { /* Handle Exception */ }
}
}
public static void main(String[] args)
{ WindowListener l = new WindowAdapter()
{ public void windowClosing(WindowEvent e) {System.exit(0);}
public void windowClosed(WindowEvent e) {System.exit(0);}
};
JFrame f = new JFrame();
f.addWindowListener(l);
JPanel panel = new Relatorio();
panel.add(button);
f.getContentPane().add(panel);
f.setSize(300, 200);
f.show();
}
}
class PrimeiraPagina implements Printable
{ Font fnt = new Font("Helvetica-Bold", Font.PLAIN, 48);
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException
{ g.setFont(fnt);
g.setColor(Color.black);
g.drawString("Primeira Pagina", 100, 200);
return Printable.PAGE_EXISTS;
}
}
class SegundaPagina implements Printable
{ Font fnt = new Font("Helvetica-Bold", Font.PLAIN, 48);
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException
{ g.setFont(fnt);
g.setColor(Color.black);
g.drawString("Segunda Pagina", 100, 200);
return Printable.PAGE_EXISTS;
}
}
