guyrnaf
Messages postés8Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention11 mai 2006
-
12 mars 2003 à 21:35
willowman
Messages postés143Date d'inscriptionvendredi 5 juillet 2002StatutMembreDernière intervention18 mars 2006
-
15 mars 2003 à 19:54
Bonjour je cherche a develloper un application comme pochette express mais pour ça j'ai besoin de savoir quelles sont les fonctions pour imprimer un panel
merci de me repondre
willowman
Messages postés143Date d'inscriptionvendredi 5 juillet 2002StatutMembreDernière intervention18 mars 20061 13 mars 2003 à 23:32
Salut !
Lorsque tu vas creer ton Panel derivant de JPanel par exemple, tu devras implementer l'interface : Printable.
Il faudra ensuite utiliser une instance de PageFormat pour gerer le format de tes impressions, et une de PrinterJob pour piloter tes jobs d'impression.
exemple :
class monPanel extends JPanel implements Printable {
PrinterJob _monJob;
PageFormat _monFormat;
public monPanel() {
super();
_monJob = _monJob.getPrinterJob();
_monFormat = _monJob.defaultPage();
C:\Documents and Settings\unknow\Bureau\fiche java\Image_presentation.java:6: Image_presentation should be declared abstract; it does not define print(java.awt.Graphics,java.awt.print.PageFormat,int) in Image_presentation
public class Image_presentation extends JPanel implements Printable
__________________________________________________________
cs_Dunkel
Messages postés7Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention14 mars 2003 14 mars 2003 à 16:52
Salut heu je regardais vite fait ton code et un truc m'a géné :)
pokoi as tu mis images//logo_pochette.jpg ?
c'est faux ^^ il faut ke tu mettes images/logo_pochette.jpg.
Pourquoi ? ^^ oki piti rappelle :)
En Unix / Linux le separateur du system est /
Sous Windows c'est \
Donc si tu declares un chemin absolue ou relatif en Java sous Linux on a :
images/logo_pochette.jpg
et sous Windows :
images\\logo_pochette.jpg
Ici on repete \ car ce symbole est un jocker qui permet de specifier des caractere de programmation comme \n pour passer la ligne \t pour une tabulation et \\ pour un back slash :). Le premier \ inhibe le second :)
donc la dans ton code ce ki est faut c'est // :) car ca ne convient en aucun k pour definir un chemin :)
Derniere chose :)
je conseille de toujours definir un chemin avec les / ; en effet Java converti automatiquement ce symbole par le bon separateur du systeme
willowman
Messages postés143Date d'inscriptionvendredi 5 juillet 2002StatutMembreDernière intervention18 mars 20061 15 mars 2003 à 19:54
Salut !
L'erreur :
"java\Image_presentation.java:6: Image_presentation should be declared abstract; it does not define print(java.awt.Graphics,java.awt.print.PageFormat,int) in Image_presentation public class Image_presentation extends JPanel implements Printable "
est tout a fait normal, puisqu'en implementant l'interface Printable, on est tenu d'en redefinir les methodes public en respectant leur signature. En locurence, la methode print doit avoir en parametre un Graphics, un PageFormat et un entier !
Or, vous n'avez pas redefini cette methode !!!
Voici un petit exemple fait rien que pour vous ! (j'ai code comme ca venait, alors pas trop de critique a ce niveau svp....merci ;-))
Bonne lecture.
public int print(Graphics g, PageFormat pf, int i) throws PrinterException {
if (i >= 1) {
return Printable.NO_SUCH_PAGE;
}
g.drawImage(_monImage,50,50,this);
return Printable.PAGE_EXISTS;
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(_monImage,50,50,this);
repaint();
}
}
/** fin de MonPanel **/
/********************************
* ma frame derivant de JFrame
*******************************/
class MaFrame extends JFrame {
MonPanel _panel;
public MaFrame(String titre) {
super(titre);
initComposants();
}
/* on initialise les composants graphiques */
protected void initComposants() {
this.setSize(new Dimension(500, 480));
this.setVisible(true);