Différence de fonctionnement dans l'IDE / à partir du .jar compilé

Différence de fonctionnement dans l'IDE / à partir du .jar compilé - Java - Programmation

Marsh Posté le 12-11-2010 à 16:56:28    

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 :
  1. private void ImpressionActionPerformed(java.awt.event.ActionEvent evt) {
  2.     JFrame frameImpression = new JFrame("Impression en cours" );
  3.     frameImpression.setSize(fenetre.getWidth(),fenetre.getHeight());
  4.     Image icone = Toolkit.getDefaultToolkit().getImage("./lib/icon.png" );
  5.     frameImpression.setIconImage(icone);
  6.     ApercuImpression ai = new ApercuImpression();
  7.     frameImpression.setContentPane(ai);
  8.     frameImpression.setVisible(true);
  9.     frameImpression.setExtendedState(1);
  10.     MPanelPrinter printP = new MPanelPrinter (ai);
  11.     printP.print();
  12.     frameImpression.dispose();
  13. }


 
code de ApercuImpression.java

Code :
  1. public class ApercuImpression extends JPanel {
  2.     public void paintComponent(Graphics g){
  3.         this.setSize(Ecran.fenetre.getWidth(),Ecran.fenetre.getHeight());
  4.         BufferedImage img = new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
  5.         Graphics2D g2D = img.createGraphics();
  6.         Ecran.fenetre.paintAll(g2D);
  7.         g2D.drawImage(img, 0, 0,this.getWidth(),this.getHeight(),this);
  8.         g2D.dispose();
  9.         }
  10. }


Message édité par L'Ampli le 12-11-2010 à 17:02:34
Reply

Marsh Posté le 12-11-2010 à 16:56:28   

Reply

Sujets relatifs:

Leave a Replay

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