Bonjour,
J'ai un problème d'impression d'une JTable en utilisant la fonction fait pour cela que je n'arrive pas à résoudre.
J'ai essayé :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { getTblData().print(PrintMode.FIT_WIDTH,new MessageFormat("test"),null, true, tmp, true); } catch (Exception ex) { ex.printStackTrace(); }
Ma fonction getTblData() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(getTblData().getPrintable(PrintMode.FIT_WIDTH,new MessageFormat("test"),null)); javax.print.attribute.HashPrintRequestAttributeSet tmp = new javax.print.attribute.HashPrintRequestAttributeSet(); tmp.add(javax.print.attribute.standard.OrientationRequested.LANDSCAPE); if(job.printDialog(tmp)) job.print(tmp); } catch (Exception ex) { ex.printStackTrace(); }
Je remplis cette table avec un modèle et je lui applique un renderer... tout marche très bien à l'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private JTable getTblData() { if (tblData == null) { tblData = new JTable(); tblData.setRowHeight(22); tblData.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); } return tblData; }
Par contre quand je veux imprimer, il m'imprime ce qu'il a envie, des fois rien, des fois les 2 premières lignes du tableau, des fois 2 lignes et demi (il s'arrête en plein milieu de la ligne), et des fois il m'imprime tout le tableau !
Avec la deuxième fonction, j'ai même des plantages du spooler d'impression au bout de la 2 ème fois (par contre la première fois ca fonctionne très bien...
J'ai même essayé d'implémenter l'interface Printable pour le JScrollPane qui contient la JTable mais il ne m'imprime que la partie visible du JScrollPane...
Donc je sais pas trop quoi faire... quelqu'un pourrait me donner un petit coup de main ?
Merci d'avance
A bientôt







Répondre avec citation
Partager