Imprimer le contenu d'une fenetre

cs_r3m1 Messages postés 20 Date d'inscription dimanche 27 octobre 2002 Statut Membre Dernière intervention 21 février 2003 - 8 févr. 2003 à 02:03
guyrnaf Messages postés 8 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 11 mai 2006 - 12 mars 2003 à 21:32
:question)
Comment faire pour imprimer le contenu d'un JFrame sachant qu'elle contient des objets hétéroclites?
(Menu, Images,Zone de dessin, boutons etc)
Existe t'il un truc qui lance l'impression de tout ce qu'il y a dans la fenetre?
J'ai bien vu un truc qui ressemble vaguement a un "print" avec le Toolkit, mais je suis pas sur d'avoir compris :x

4 réponses

cs_blackcat Messages postés 12 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 22 mai 2003
10 févr. 2003 à 14:06
PrintJob pjob=Toolkit.getDefaultToolkit().getPrintJob(this,"impression",null);
Ce code permet uniquement de récupérer la boite de dialogue d'impression.

PrinterJob pjob2=PrinterJob.getPrinterJob();
if(pjob2!=null)
{
Graphics pgph=pjob.getGraphics();
PageFormat pf=pjob2.defaultPage();
pgph.dispose();
pjob.end();
}
Les méthodes dont je me souviens mais a vérifier :
Il faut que tu récupère le Graphics de ta jframe (getGraphics)
Ensuite tu le centre, et tu fait un paint()...

bon courage
0
cs_r3m1 Messages postés 20 Date d'inscription dimanche 27 octobre 2002 Statut Membre Dernière intervention 21 février 2003
11 févr. 2003 à 20:15
J'ai ajouté ce code a mon appli, mais j'obtiens des erreurs de compil:

Agidici.java:72: cannot resolve symbol
symbol : method getPrintJob (Agidici.ActionImprimer,java.lang.String,<nulltype>
)
location: class java.awt.Toolkit
PrintJob pjob=Toolkit.getDefaultToolkit().getPrintJob(th
is,"impression",null);
^
Agidici.java:75: cannot resolve symbol
symbol : class PrinterJob
location: class Agidici.ActionImprimer
PrinterJob pjob2=PrinterJob.getPrinterJob();
^
Agidici.java:75: cannot resolve symbol
symbol : variable PrinterJob
location: class Agidici.ActionImprimer
PrinterJob pjob2=PrinterJob.getPrinterJob();
^
Agidici.java:79: cannot resolve symbol
symbol : class PageFormat
location: class Agidici.ActionImprimer
PageFormat pf=pjob2.defaultPage();
^
4 errors

Pour infos, voila comment je l'ai ajouté:
Dans la fenetre principale de mon appli, j'ai un menu dans lequel je peux choisir l'action "Imprimer".
Pour faire des actions lors d'un click de souris sur un champ du menu, je créé des classes dont l'en tête est le suivant, par exemple pour l'action Imprimer:

private class ActionImprimer implements ActionListener {
public synchronized void actionPerformed (ActionEvent e) {
//action associée
}
}

et bien sur je rends le composant sensible aux clicks de souris grace a:
imprimer.addActionListener(new ActionImprimer());

A la place du commentaire "//action associée" dans la classe ActionImprimer, j'ai mis le code source que tu m'as indiqué. Je ne vois pas trop bien d'ou vient l'erreur:
- j'ai juste fait un copier coller de ton source sans modifier les parametres qu'il fallait modifier paske j'ai rien capté?!
- je ne peux pas accéder aux méthodes que tu utilises dans ton code pour quelques raisons obscures?!
- j'ai oublié de faire un import.machin.*?(j ai esayé import javax.print.*; mais ca n'a rien changé)
- autres...lol
0
cs_blackcat Messages postés 12 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 22 mai 2003
13 févr. 2003 à 17:14
consult l'aide...
As-tu essayer avec import java.awt.print.
0
guyrnaf Messages postés 8 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 11 mai 2006
12 mars 2003 à 21:32
-------------------------------
Réponse au message :
-------------------------------

> PrintJob pjob=Toolkit.getDefaultToolkit().getPrintJob(this,"impression",null);
> Ce code permet uniquement de récupérer la boite de dialogue d'impression.
>
> PrinterJob pjob2=PrinterJob.getPrinterJob();
> if(pjob2!=null)
> {
> Graphics pgph=pjob.getGraphics();
> PageFormat pf=pjob2.defaultPage();
> pgph.dispose();
> pjob.end();
> }
> Les méthodes dont je me souviens mais a vérifier :
> Il faut que tu récupère le Graphics de ta jframe (getGraphics)
> Ensuite tu le centre, et tu fait un paint()...
>
> bon courage
>
>
>
0
Rejoignez-nous