L'Ampli J'débute mais ça va saigner... | Bonjour,
j'ai réalisé un programme utilisant un certain nombre de Panels imbriqués. L'un des bouton de l'Ecran global doit permettre d'imprimer une vue d'ensemble de ces panels (pour info, il s'agit d'une feuille de personnage interactive, d'où le besoin d'imprimer). Grâce à ce qui a été dit sur le sujet sur ce forum et ailleurs, je suis parvenu à un résultat satisfaisant en utilisant la classe MPanelPrinter (MEP) et en passant par une sorte d'aperçu d'écran. Malheureusement ce "résultat satisfaisant" n'est visiblement effectif que lorsque je lance le programme à partir de Netbeans tandis qu'en lançant le programme depuis le fichier compilé .jar, j'obtiens une page blanche (le reste du programme fonctionnant par contre parfaitement).
Est-ce que quelqu'un aurait une idée quant à la raison de ceci (et potentiellement une solution) ?
merci d'avance pour vos réponses
NB: je suis encore sur Netbeans 6.8 avec un jdk 6 qui se met régulièrement à jour.
code pour le bouton imprimer
Code :
- private void ImpressionActionPerformed(java.awt.event.ActionEvent evt) {
- JFrame frameImpression = new JFrame("Impression en cours" );
- frameImpression.setSize(fenetre.getWidth(),fenetre.getHeight());
- Image icone = Toolkit.getDefaultToolkit().getImage("./lib/icon.png" );
- frameImpression.setIconImage(icone);
- ApercuImpression ai = new ApercuImpression();
- frameImpression.setContentPane(ai);
- frameImpression.setVisible(true);
- frameImpression.setExtendedState(1);
- MPanelPrinter printP = new MPanelPrinter (ai);
- printP.print();
- frameImpression.dispose();
- }
|
code de ApercuImpression.java
Code :
- public class ApercuImpression extends JPanel {
- public void paintComponent(Graphics g){
- this.setSize(Ecran.fenetre.getWidth(),Ecran.fenetre.getHeight());
- BufferedImage img = new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
- Graphics2D g2D = img.createGraphics();
- Ecran.fenetre.paintAll(g2D);
- g2D.drawImage(img, 0, 0,this.getWidth(),this.getHeight(),this);
- g2D.dispose();
- }
- }
|
Message édité par L'Ampli le 12-11-2010 à 17:02:34
|