IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Impression écran JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 201
    Par défaut Impression écran JFrame
    Bonjour,

    J'ai une application qui m'affiche des Formulaires JFrames consultable, modifiables..etc...

    On me demande de pouvoir imprimer ces formulaires via un PrintScreen... Ne me demandez pas pourquoi on me l'a imposé malgré mes rétissences...

    Donc j'ai trouvé le moyen qui, lorsque j'ouvre un formulaire et que je clique sur un bouton imprimer prévu à cet effet, me crée un fichier .PNG contenant la capture d'écran.

    Or on me demande de pouvoir faire des captures d'écrans à partir d'une liste de formulaires sans avoir à ouvrir ces derniers. Donc lorsque je sélectionne un formulaire dans ma liste et clique sur un nouveau bouton imprimer, j'ouvre ma JFrame correpondante, exécute le snapshot et ferme la JFrame.

    Ceci ne fonctionne pas, j'obtiens le cadre de la fenêtre mais vide car je pense que le snapshot se réalise avant que la JFrame ne soit complètement painte. J'ai tenté d'utiliser en vain des threads et autre SwingInvoker mais sans succès je patoge un peu...

    Voilà si quelqu'un peut m'indiquer un moyen de m'en sortir je suis preneur!

    Merci d'avance.

    Laurent

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 201
    Par défaut
    voici ce que j'ai tenté avec les threads :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ...
     
    JFrameFicheObservation frameToPrint;
     
    ...
     
    private void jButtonImprimerActionPerformed(java.awt.event.ActionEvent evt) {    
     
    Runnable doPrintScreen = new Runnable() {
          public void run() {
                 l_oUt.PrintScreen(frameToPrint);
             }
         };
     
          SwingUtilities.invokeLater(doPrintScreen);
          //création de l'objet IHM
            frameToPrint = new JFrameFicheObservation();
    }
    L'image résultante me renvoie bien le cadre de la JFrameFicheObservation mais transparent, sans composants...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 201
    Par défaut
    Résolu.

    J'ai juste mis le InvokeLater à la fin et le frame.setVisible(true) juste avant de rentrer dans la fonction de capture d'écran.

    Voilou!

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Et la méthode paint?

    ce serait je pense nettement plus efficace que de simuler une pression sur "print screen"...

    En gros, tu n'aurais plus à ouvrir un formulaire et le fermer tout de suite après...

    En gros:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    - créer une buffered image de la bonne taille
    - appeler monformulaire.paint et passer le contexte graphique de la buffered image
    - sauver le tout dans un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'impression écran
    Par regisba dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/10/2006, 09h26
  2. Impression écran programée
    Par jeremy276 dans le forum Access
    Réponses: 1
    Dernier message: 14/07/2006, 21h43
  3. impression écran d'une url
    Par choupi-25 dans le forum Langage
    Réponses: 1
    Dernier message: 29/01/2006, 14h36
  4. [Afficher une image] Comment afficher une impression écran ?
    Par mnina dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 10/11/2005, 10h30
  5. Bouton Impression écran
    Par eag35 dans le forum MFC
    Réponses: 3
    Dernier message: 04/11/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo