Imprimer un panel

guyrnaf Messages postés 8 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 11 mai 2006 - 12 mars 2003 à 21:35
willowman Messages postés 143 Date d'inscription vendredi 5 juillet 2002 Statut Membre Dernière intervention 18 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

4 réponses

willowman Messages postés 143 Date d'inscription vendredi 5 juillet 2002 Statut Membre Dernière intervention 18 mars 2006 1
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();

.... ect....
}

};
0
guyrnaf Messages postés 8 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 11 mai 2006
14 mars 2003 à 10:52
voila ma source:

__________________________________________________________

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.print.*;

public class Image_presentation extends JPanel implements Printable
{
PrinterJob _monJob;
PageFormat _monFormat;

public void paintComponent(Graphics g)
{

Toolkit tk=Toolkit.getDefaultToolkit();
Image i=tk.getImage("images//logo_pochette.jpg");
g.drawImage(i,1,1,this);
_monJob = _monJob.getPrinterJob();
_monFormat = _monJob.defaultPage();


}


}
__________________________________________________________

mon but est de pouvoir imprimer l'image contenue dans le panel je sais pas si la construction est correcte

j'ai une errreur de compil:

__________________________________________________________

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
__________________________________________________________

si vous pouviez m'aider merci
0
cs_Dunkel Messages postés 7 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 14 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
0
willowman Messages postés 143 Date d'inscription vendredi 5 juillet 2002 Statut Membre Dernière intervention 18 mars 2006 1
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.

A pluche.

//---------------------------------
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.BorderLayout;
import java.awt.Image;

import java.awt.event.*;
import java.awt.print.*;
import java.awt.*;

/**********************************
* mon panel derivant de JPanel
*********************************/
class MonPanel extends JPanel implements Printable, ActionListener {

PrinterJob _monJob;
Image _monImage;
JButton _btPrint;

public MonPanel() {
super();
_btPrint = new JButton("Imprimer");
_btPrint.addActionListener(this);
_monImage = getToolkit().getImage("e:\\img.gif");
setLayout(new BorderLayout());
add(_btPrint,BorderLayout.NORTH);
}

public void actionPerformed(ActionEvent e) {
_monJob = PrinterJob.getPrinterJob();
_monJob.setPrintable(this);
try {
_monJob.print();
} catch (Exception ex) { }
}

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);

JPanel contentPane = (JPanel) this.getContentPane();
_panel = new MonPanel();
contentPane.setLayout(new BorderLayout());
contentPane.add(_panel,BorderLayout.CENTER);
}
}

/** fin de MaFrame **/

/******************************
* Classe PresentationImage
******************************/

public class PresentationImage {

public static void main(String[] args) {
WindowListener listener = new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
};

MaFrame _fenetre = new MaFrame("Impression 2 deja vue");
_fenetre.addWindowListener(listener);
}
}
0
Rejoignez-nous