[RESOLVIDO] Como imprimir (enviar para impressora) um JFrame

2 respostas
jMarcel

Estou crindo uma aplicação desktop básica, onde tenho um Jframe, JPanels, JMenus, alguns JTextFields, JLabels e JButtons.
O aplicativo calcula valores informados pelo usuário nos textfields e apresenta os resultados em textfields, também.

Quero incluir um método para imprimir (enviar para a impressora) o JFrame inteiro, ou seja, tudo que estou vendo na tela do frame (os textfields, labels etc).

Já criei um JItemMenu (Imprimir Ctrl+P). Só falta incluir o método no evento, que eu ainda não sei como.

Alguém me ajuda ?

Obrigado.

jMarcel.

2 Respostas

E

http://java.sun.com/docs/books/tutorial/2d/printing/gui.html

jMarcel

Enantiomero (ou quem puder ajudar),

agora surgiu outro probleminha pra mim: estou com dificuldades para colocar o método printAll() no local adequado.
Quero que quando ocorrer o evt abaixo (criado para um menuItem), a Caixa de Diálogo de Impressão seja mostrada.

/* abaixo segue o trecho do código que se encontra no mesmo pacote do meuFrame */

private void jMenuItemImprimirActionPerformed(java.awt.event.ActionEvent evt) {

/<em>frame.printAll(g); //Como chamar o método aqui para imprimir o frame todo ?</em>/

}
public class imprimeClass implements Printable {
     public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
        
         PrinterJob pj = PrinterJob.getPrinterJob();	                       //É aqui mesmo que coloco esses métodos para 
         PageFormat pageformat = pj.pageDialog(pj.defaultPage());    //chamar a Caixa de Diálogo de Impressão ?

         if (page > 0) { return NO_SUCH_PAGE;}

        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());

        /*meuFrame.printAll(g);                   //imprime todo o frame*/

        return PAGE_EXISTS;
     }
  }

Agradço muito pela ajuda.

Criado 24 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 2
Participantes 2