Bonjour,

Je suis debutant en programmation, j ai cherche dans le faq et les cours qu il y a sur ce site, n ayant rien trouve je me permet de vous demander de m aider.
Je dois imprimer un fenetre dans mon logiciel, j'ai trouve un code pour l imprimer mais la largeur de la fenetre et plus grande que la feuille donc j ai qu un quart de la fenetre sur la feuille imprimé.

Voici le code que j utilise pour imprimer ma page:

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
[i]public class PrintUtilities implements Printable {
  private Component componentToBePrinted;
 
  public static void printComponent(Component c) {
    new PrintUtilities(c).print();
  }
 
  public PrintUtilities(Component componentToBePrinted) {
    this.componentToBePrinted = componentToBePrinted;
  }
 
  public void print() {
    PrinterJob printJob = PrinterJob.getPrinterJob();
    printJob.setPrintable(this);
    if (printJob.printDialog())
      try {
        printJob.print();
      } catch(PrinterException pe) {
        System.out.println("Error printing: " + pe);
      }
  }
 
  public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
    if (pageIndex > 0) {
      return(NO_SUCH_PAGE);
    } else {
      Graphics2D g2d = (Graphics2D)g;
      g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
      disableDoubleBuffering(componentToBePrinted);
      componentToBePrinted.paint(g2d);
      enableDoubleBuffering(componentToBePrinted);
      return(PAGE_EXISTS);
    }
  }
 
  /** The speed and quality of printing suffers dramatically if
   *  any of the containers have double buffering turned on.
   *  So this turns if off globally.
   *  @see enableDoubleBuffering
   */
  public static void disableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(false);
  }
 
  /** Re-enables double buffering globally. */
 
  public static void enableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(true);
  }
}[/i]
Je suis sure qu il faut changer quelque chose dans la methode public int print(Graphics g, PageFormat pageFormat, int pageIndex)

mais je sais pas quoi, si il y a quelqu un qui pourrait m aider ca m arrangerer enormement

Merci