gabsi08aymen
Messages postés15Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention 8 octobre 2009
-
11 août 2008 à 08:20
deemon
Messages postés13Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention24 février 2009
-
29 août 2008 à 15:59
Bonjour,
je veux imprimer un JTable mais le problème c'est que la taille de JTable lors de l'impression devient très petite parcontre lorque j'affiche le JTable sur mon interface elle est très claire et sa taille est acceptable.
Je sais pas ou est le problème.
Voilà mon code:
public void affichage()
{
table = remplirTable(); //la table sera initialisée par la liste des administrateurs envoyée par la fct 'remplirTable()'
table.setPreferredScrollableViewportSize(new Dimension(1020,680)); //prendre la dimension de la table
// Un panneau, placé dans la fenêtre
TableColumn column = null;
for (int i = 0; i < table.getColumnCount(); i++) {
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(200); //third column is bigger
public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws
PrinterException {
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
int fontHeight = g2.getFontMetrics().getHeight();
int fontDescent = g2.getFontMetrics().getDescent();
gabsi08aymen
Messages postés15Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention 8 octobre 2009 12 août 2008 à 09:03
Bonjour,
le code indiqué dans ce lien permet seulement d'imprimer un JPanel mais moi je veux imprimer seulement un JTable se trouvant dans un JScrollPane et mon problème est je veux imprimer mon JTable en tant que paysage mais le code que j'ai me l'imprime seulement en tant que portrait meme si que je l'indique lors de l'impression que je veux imprimer en tant que paysage.
Est ce que quelqu'un peut m'aider à corriger ce code?
Voilà ma fonction d'impression:
int totalNumPages = (int) Math.ceil( ( (double) table.getRowCount()) /
numRowsOnAPage);
if (pageIndex >= totalNumPages)
{
return NO_SUCH_PAGE;
}
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
// en bas au centre
g2.drawString("Page: " + (pageIndex + 1), (int) pageWidth / 2 - 35,
(int) (pageHeight + fontHeight - fontDescent));
g2.translate(0f, headerHeightOnPage);
g2.translate(0f, -pageIndex * pageHeightForTable);
// si cette partie de la page est plus petite
// que la taille disponible, alors découper les contours appropriés
if (pageIndex + 1 == totalNumPages) {
int lastRowPrinted = numRowsOnAPage * pageIndex;
System.out.println("lastRowPrinted ="+lastRowPrinted);
int numRowsLeft = table.getRowCount() - lastRowPrinted;
System.out.println("numRowsLeft ="+numRowsLeft);
g2.setClip(0, (int) (pageHeightForTable * pageIndex),
(int) Math.ceil(tableWidthOnPage),
(int) Math.ceil(oneRowHeight * numRowsLeft));
}
// sinon découper la zone disponible toute entière
else {