2012-06-09 7 views
1

J'ai le code d'imprimer une chaîne, qui est passé dans le programme lui-même. Ici, j'appelle ce code sur le bouton Imprimer pour obtenir une copie papier. Maintenant, je veux imprimer un formulaire JForm dans le même code, mais je ne comprends pas comment le faire. JForm ayant des étiquettes et des champs de texte des détails de l'utilisateur. C'est le code où j'imprime une chaîne "Hello World".java: Comment imprimer JForm

public class PrintClass implements Printable, ActionListener { 
public int display(Graphics g, PageFormat pf, int page) throws 
               PrinterException { 
    if (page > 0) { /* We have only one page, and 'page' is zero-based */ 
     return NO_SUCH_PAGE; 
    } 

    /* User (0,0) is typically outside the imageable area, so we must 
    * translate by the X and Y values in the PageFormat to avoid clipping 
    */ 

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

    /* Now we perform our rendering */ 

    g.drawString("Hello World", 100, 100); 


    /* tell the caller that this page is part of the printed document */ 

    return PAGE_EXISTS; 
} 

Veuillez m'aider à appeler constructeur d'un JForm, au lieu de passer la chaîne.

+0

Qu'est-ce qu'un 'JForm'? –

Répondre

2

Dessinez le Graphics de votre JFrame actuel dans un BufferedImage, puis dessinez l'image dans le Graphics de l'imprimante.

Graphics g = myFrame.getContentPane().getGraphics(); 
// draw graphics into an image 
// draw the image into the printer's graphics 

Il est important de noter que vous devriez toujours obtenir un nouvel objet Graphics de votre JFrame chaque fois que vous voulez imprimer le contenu du formulaire

+0

@ user1415022 [reste sont dans le tutoriel officiel] (http://docs.oracle.com/javase/tutorial/2d/printing/index.html) – mKorbel

+0

@ mKorbel merci pour le lien, j'ai oublié de le mentionner dans la réponse :) – GETah