IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

impression d'une fenetre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 49
    Par défaut impression d'une fenetre
    bonjour, j'ai quelque probleme pour imprimer une fenetre

    disons que je veuille imprimer "fen2" dans le programme ci-dessous(l'une des nombreuses fenetres de mon programme), comment puis je m y prendre???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    class Extended extends JFrame
    {
    JFrame fen2 = new JFrame();
    public Extended(){
    //remplissage et affichage de la fenetre "ext" 
    //remplissage et affichage de fen2 
    ......
    }
     
    public static void main(String [] args){
        Extended ext = new Extended();
        ext.setVisible(true);// Affichage de la vue		  
      }
     
    private void Imprimer(){
    JobAttributes ja = new JobAttributes();
    ja.setDestination(JobAttributes.DestinationType.PRINTER);
     
    PageAttributes pa = new PageAttributes();
    pa.setMedia(PageAttributes.MediaType.A4);
    pa.setOrientationRequested(PageAttributes.OrientationRequestedType. LANDSCAPE);
     
    PrintJob pj = getToolkit().getPrintJob(Extended.this,"Printing_Test", ja, pa);
     
    if (pj != null){
                Graphics pg = pj.getGraphics();
                printAll(pg);
    	pg.dispose();
    	pj.end();
    }
    Printer();
    }
    }
    Avec ce programme, je n arrive qu'à imprimer la fenetre "ext"

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    il suffit de remplacer printAll(pg); (qui est équivalent à this.printAll(pg)), par :
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 49
    Par défaut
    merci bcp!!!!!

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 49
    Par défaut
    encore un ptit pb,

    la taille de ma fenetre est trop grande pour etre imprimer en A4, dc j'aimerais au moment de l impression reduire ma fenetre é tout ce qu il y a à l interieur (container)pour pouvoir tout imprimer en A4.

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Dans ce cas, il faut récupérer les tailles respectives de la fenêtre et de la feuille, afin de calculer le ratio, puis appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    double ratio = tailleA4 / tailleFenêtre;
    Graphics2D pg = (Graphics2D) pj.getGraphics();
     
    // on applique une transformation qui va filtrer
    // toutes les opérations futures de dessin
    pg.scale(ratio, ratio);
     
    printAll(pg); // ou fen2.printAll(pg); ?
    pg.dispose();
    Si jamais tu as une ClassCastException (ça arrive parfois avec les PrintJob), il faut créer une BufferedImage de la taille A4 et utiliser son Graphics2D pour y dessiner la fenêtre (avec le 'scale'), puis utiliser le Graphics du PrintJob pour y dessiner la BufferedImage.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 49
    Par défaut
    Bien sûr, il a fallut que je tombe dans l'exception

    Il faut que je précise un point : ça ne fait que 2 mois que je fais du java, donc si vous pouviez développer un peu plus vos explications, voir donner un exemple, ça m'aidera à comprendre

    Merci d'avance

Discussions similaires

  1. [WD14] impression d'une fenetre
    Par alfaz dans le forum WinDev
    Réponses: 4
    Dernier message: 12/05/2012, 18h16
  2. impression d'une fenetre
    Par akwa_77 dans le forum WinDev
    Réponses: 3
    Dernier message: 07/03/2010, 22h16
  3. Réponses: 1
    Dernier message: 26/10/2007, 12h32
  4. comment empecher une fenetre de lancement d'impression de s'ouvrir?
    Par Jayceblaster dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/09/2007, 11h33
  5. Impression d une 2eme fenetre
    Par vince6262 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 19/06/2007, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo