cs_r3m1
Messages postés20Date d'inscriptiondimanche 27 octobre 2002StatutMembreDernière intervention21 février 2003
-
8 févr. 2003 à 02:03
guyrnaf
Messages postés8Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention11 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
cs_blackcat
Messages postés12Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention22 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()...
cs_r3m1
Messages postés20Date d'inscriptiondimanche 27 octobre 2002StatutMembreDernière intervention21 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
guyrnaf
Messages postés8Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention11 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
>
>
>