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

Agents de placement/Fenêtres Java Discussion :

Probleme d'impression JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut Probleme d'impression JFrame
    Bonjour désolé de re poster un sujet si vite apres le precedent mais j'ai decide de changer d'options :

    Le menu de ce code permet l'impression de la frame, cependant celle ci se retrouve réduite énormement, et concentrée en haut à gauche de la feuille imprimée.

    Voila le code que j'utilise :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    /*import*/
     
     
    public class XtestPrint extends JFrame implements ActionListener, Printable {
     
     
      public XTestprint () {
        init ();
        setSize (600, 600);
        setVisible (true);
      } 
     
     
      public void init () {
        Container content_pane = getContentPane ();
     
        /* Architecture de la fenetre */
     
        buildMenu (this);
      }
     
      void buildMenu (JFrame frame) {
        MenuBar mb = new MenuBar ();
        Menu m = new Menu ("Fichier");
     
        MenuItem mi = new MenuItem ("Imprimer");
        mi.addActionListener (this);
        m.add (mi);
     
        mi = new MenuItem ("Quitter");
        mi.addActionListener (this);
        m.add (mi);
     
        mb.add (m);
        frame.setMenuBar (mb);
      } // init
     
      /** Execute the menu events here. **/
      public void actionPerformed (ActionEvent e) {
        String command = e.getActionCommand ();
        if (command.equals ("Quitter")) {
            dispose ();
            System.exit (0);
        } else if (command.equals ("Imprimer")) {
            PrinterJob printJob = PrinterJob.getPrinterJob();
            printJob.setPrintable(this);
            if (printJob.printDialog()) {
                try {
                    printJob.print();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
      }
     
     
      public void print () {
     
     
        PrintJob pjb = getToolkit ().getPrintJob (this,"Impression", null);
     
        if (pjb != null) {
            Graphics pg = pjb.getGraphics ();
           if (pg != null) {
               paint (pg);
               pg.dispose (); 
           }
           pjb.end ();
        }
      }
    Je dois oublier quelque chose de primordial :/

    Merci par avance pour votre aide

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Je pense que tu dois réaliser un scale pour remplir ta feuille. Moi j'ai récupéré un bout de code sur le net qui permet de le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      Dimension dim = getSize();
      double scaleX = pageFormat.getImageableWidth() / dim.width;
      double scaleY = pageFormat.getImageableHeight() / dim.height;
      double scale = Math.min(scaleX, scaleY);
      Graphics2D g2D = (Graphics2D) graphics;
     
      g2D.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
      g2D.scale(scale, scale);
      printAll(g2D);
    Dis-moi si ça t'aide.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    merci de ta réponse, j'avais en effet déjà vu cet élément

    Cependant je n'ai pas reussi à l'integrer correctement dans mon code pour le rendre fonctionnel.

    Tu as une idée ?

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Moi, pour imprimer toute mon appli, j'ai fait ça :

    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
     
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
    //  System.out.println("MyApp.print()");
      if (pageIndex != 0) {
       return NO_SUCH_PAGE;
      }// end if
      Dimension dim = getSize();
      double scaleX = pageFormat.getImageableWidth() / dim.width;
      double scaleY = pageFormat.getImageableHeight() / dim.height;
      double scale = Math.min(scaleX, scaleY);
      Graphics2D g2D = (Graphics2D) graphics;
      g2D.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
      g2D.scale(scale, scale);
      printAll(g2D);
     
      // destruction du Graphics
      g2D.dispose();
     
      return PAGE_EXISTS; 
     }
    Sachant que ma frame principale étend Printable.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    Grand merci !

    En effet c'est imparrable ^^
    Impec

    Si j'osais une dernière question :
    Y-a-t-il un moyen de ne pas imprimer les contours de la fenêtre ?
    J'imprime parfaitement mais le résultat apparait avec l'interface Windows autour :/

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par Djulinho
    Grand merci !

    En effet c'est imparrable ^^
    Impec

    Si j'osais une dernière question :
    Y-a-t-il un moyen de ne pas imprimer les contours de la fenêtre ?
    J'imprime parfaitement mais le résultat apparait avec l'interface Windows autour :/
    Tu peux osais.
    Simplement pour te répondre, il faudrait que je sache ce que tu veux exactement...
    Quel est le composant que tu veux imprimer? Ta frame ou ce qu'elle contient?
    Si c'est ce qu'elle contient, il faut que le contenu implémente Printable et se redessine dans sa méthode print().
    Moi c'est ce que je fais avec le contenu de JInternalFrame.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    désolé pour le temps de réponse j'ai fait une pause d'écran salutaire ^^

    en effet je ne souhaite avoir que son contenu.
    Je vais creuser dans ce sens, merci encore pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB]probléme d'impression en VB
    Par jolicoeur-3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/10/2005, 21h30
  2. Probleme d'impression
    Par Kotik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/10/2005, 10h37
  3. Problème d'impression avec CUPS
    Par piff62 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 14/02/2005, 11h46
  4. [TP]problème d'impression en turbopascal
    Par matusa96 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 14/02/2004, 17h17
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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