Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1447 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JScrollPane] problème d'impression

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JScrollPane] problème d'impression

n°1821800
RR instinc​t
Posté le 04-12-2008 à 10:53:06  profilanswer
 

Bonjour à tous,
 
Je m'adresse à vous car je n'arrive pas à résoudre mon problème et j'avais que je n'ai plus d'idée...
 
J'ai un tableau qui répertorie un nombre d'heures pour chaque personne pour chaque jour (un agenda en quelques sortes),
 
Pour afficher ce tableau, j'ai utilisé un JScrollPane, avec mes heures de travail dans la partie viewPort, les dates en RowHeader, et les personnes en ColumnHeader.
 
A l'affichage, c'est niquel, ca marche super bien. Par contre en impression, ca passe plus...
 
J'ai essayé d'implémenter la fonction print() de l'interface Printable comme suit :  
 

Code :
  1. class GlobalScrollPane implements Printable {
  2. public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
  3.  try {
  4.   JViewport view = getViewport();
  5.   Dimension dim = view.getViewSize();
  6.   Dimension rhDim = getRowHeader().getViewSize();
  7.   Dimension chDim = getColumnHeader().getViewSize();
  8.   if (dim.height < pageFormat.getImageableHeight()*(pageIndex)) {
  9.    System.out.println("no page on "+pageIndex);
  10.    return NO_SUCH_PAGE;
  11.   }
  12.   System.out.println("page on "+pageIndex);
  13.   System.out.println("view (lxh): "+dim.width+"x"+dim.height);
  14.   System.out.println("row header (lxh): "+rhDim.width+"x"+rhDim.height);
  15.   System.out.println("column header (lxh): "+chDim.width+"x"+chDim.height);
  16.   System.out.println("pageFormat (lxh): "+pageFormat.getImageableWidth()+"x"+pageFormat.getImageableHeight());
  17.   int heightOfVPPaint = (int)pageFormat.getImageableHeight();
  18.   // si c'est la dernière page, le tableau doit être plus petit que la taille total de la page
  19.   if (pageFormat.getImageableHeight()* (pageIndex+1) > dim.height) {
  20.    heightOfVPPaint = (int)(dim.height - pageFormat.getImageableHeight()* (pageIndex));
  21.   }
  22.   heightOfVPPaint-=chDim.height;
  23.   double scale = (pageFormat.getImageableWidth()-rhDim.width) / dim.width;
  24.   System.out.println("scale "+scale);
  25.   Graphics2D g2D = (Graphics2D)g;
  26.   if (scale<1) g2D.scale(scale, scale);
  27.   g2D.translate(pageFormat.getImageableX()+rhDim.width, pageFormat.getImageableY());
  28.   getColumnHeader().printAll(g);
  29.   System.out.println("chPrinted" );
  30.   g2D.translate(-rhDim.width, chDim.height);
  31.   getRowHeader().printAll(g);
  32.   System.out.println("rhPrinted" );
  33.   g2D.translate(rhDim.width, 0);
  34.   view.printAll(g);
  35.   System.out.println("viewPrinted" );
  36.  } catch (Exception ex) {
  37.   ex.printStackTrace();
  38.  }
  39.  return PAGE_EXISTS;
  40. }
  41. }


 
donc déjà je test avec une seule page (20 personnes tiennent sur une seul page)
 
quand j'utilise uniquement
 

Code :
  1. view.printAll(g);


 
c'est bon, tout fonctionne, mais je n'ai que les heures (pas de dates ni de personne)
 
mais dès que j'utilise
 

Code :
  1. getRowHeader().printAll(g);


 
Il m'imprime ce qu'il veut... des fois 3 personnes, des fois 5, 10... Alors que j'en est 20 à imprimer...
 
Donc si quelqu'un avait une idée de ce que je peux faire pour essayer de résoudre ce problème... merci d'avance.
 
A bientôt.

mood
Publicité
Posté le 04-12-2008 à 10:53:06  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JScrollPane] problème d'impression

 

Sujets relatifs
Problème accents dans URL (UTF8)Problème mise à jour modèle impossible Dreamweaver
Problème de cryptage code sourceProblème d'exec() d'un programme C++ sous PHP
probleme debutant jsp[RÉSOLU]problème de Requète MySQL
Problème de répétition d'imageprobleme avec portaudio
Problème de gestion d'authentification avec JDBCRealm sous tomcat 6Problème de fichier executable
Plus de sujets relatifs à : [JScrollPane] problème d'impression


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR