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.
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) {
/frame.printAll(g); //Como chamar o método aqui para imprimir o frame todo ?/
}
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;
}
}