imprimer interface graphique

imprimer interface graphique - Java - Programmation

Marsh Posté le 03-09-2004 à 13:48:36    

Bonjour
Comment puis-je imprimer mon interface utilisateur (JFrame)?
merci

Reply

Marsh Posté le 03-09-2004 à 13:48:36   

Reply

Marsh Posté le 03-09-2004 à 13:57:50    

Un piti bout de code à modifier à ton gout:

Code :
  1. private void jMenuFichierImprimer_actionPerformed(final ActionEvent e) {
  2.   final JInternalFrame frame = getSelectedFrame();
  3.   if(frame == null) {
  4.     showErrorMessage("Pas de fenêtre à imprimer." );
  5.     return;
  6.   }//end if
  7.   final String frameTitle = frame.getTitle();
  8.   printerJob = PrinterJob.getPrinterJob();
  9.   printerJob.setJobName("Printer job for '" + frameTitle + "' window" );
  10.   final PageFormat pf = printerJob.defaultPage();
  11.   final PageFormat pf2 = printerJob.pageDialog(pf);
  12.   if(pf2 != pf) {
  13.     printerJob.setPrintable(this, pf2);
  14.     if(printerJob.printDialog()) {
  15.       printerJob.print();
  16.     }//end if
  17.   }//end if
  18. }//end jMenuFichierImprimer_actionPerformed

et

Code :
  1. public int print(final Graphics graphics, final PageFormat pageFormat, final int pageIndex) throws PrinterException {
  2.   if(pageIndex != 0)
  3.     return NO_SUCH_PAGE;
  4.   /*  */
  5.   final JInternalFrame frame = getSelectedFrame();
  6.   final Container container = frame.getContentPane();
  7.   final Dimension dim = container.getSize();
  8.   final double scaleX = pageFormat.getImageableWidth() / dim.width;
  9.   final double scaleY = pageFormat.getImageableHeight() / dim.height;
  10.   final double scale = Math.min(scaleX, scaleY);
  11.   final Graphics2D g2D = (Graphics2D)graphics;
  12.   g2D.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
  13.   g2D.scale(scale, scale);
  14.   container.print(g2D);
  15.   return PAGE_EXISTS;
  16. }//end print


A lire: http://java.sun.com/docs/books/tut [...] index.html


Message édité par nerisson le 03-09-2004 à 14:46:38
Reply

Marsh Posté le 03-09-2004 à 15:17:03    

Merci beaucoup pour ces codes complets.
J'ai une question de base, comment ça imprime? Comment ces commandes son relier à l'imprimante??? un peu b^ete mais je vois pas trop...
En faisant la commande linux a2ps, le graphique sera imprimé en m^eme temps que le listing du programme?

Reply

Marsh Posté le 03-09-2004 à 15:19:22    

Ben on s'en tape un peu de comment ça fonctionne, on fait du Java, on est indépendant du matériel utilisé  :D

Reply

Marsh Posté le 03-09-2004 à 15:52:13    

oui j'ai essayé ça marche, mystere

Reply

Marsh Posté le 03-09-2004 à 18:25:02    

pour tracer mon interface c'est plus difficile, je ne sais pas comment "prendre" ma fenetre?
Voici à quoi resssemble ma fenetre, les elements principaux
 
class Logiciel9 extends JFrame implements ActionListener, ListSelectionListener, Printable{
 
 Container pane = getContentPane();...
 
public void actionPerformed(ActionEvent event) {
 if (source == imprime){  
    PrinterJob printJob = PrinterJob.getPrinterJob();
     printJob.setPrintable(?????);
     if (printJob.printDialog()) {
  try {
      printJob.print();  
  } catch (Exception ex) {
      ex.printStackTrace();
  }
     }
     }
 
} fin methode actionPerformed()
 
 
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
  Graphics2D g2 = (Graphics2D) g;
        return Printable.PAGE_EXISTS;
}
 
 Logiciel9() {
        super();
 
 setTitle("LCP GRAPHEUR" );
 setSize(400, 490);
 setLocation(10,100);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 GridLayout layout = new GridLayout(6, 1, 2, 2);
 
       pane.setLayout(layout);....
.... setContentPane(pane);
 setVisible(true);..
  }// fin du constructeur de la fenetre principale
 
 
public static void main(String[] argv) {
 
 Logiciel9 ba = new Logiciel9();  
 
    } // fin main  
 
} // fin classe Logiciel9
 
Merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed