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

AWT/Swing Java Discussion :

Est il possible de faire une photo d'un JPanel à un instant ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut Est il possible de faire une photo d'un JPanel à un instant ?
    Comme un imprim ecran en fait....
    sans que le graphe est forcément des paintComponent ou truc comme ça

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    A mon avis, la méthode clone() doit te fournir ça si elle est bien implémentée (jamais essayé de cloner des composants graphiques).

    Tu gardes ton JPanel cloné à l'abris des modifications et il devrait correspondre à la "photo" que tu désirais.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Euh, la méthode clone n'a pas du tout cette fonction. Elle sert bien à cloner, mais c'est juste pour faire une copie de l'objet. Que ce soit un composant graphique ou non...

    Pour enregistrer une image de ton composant, tu peux regarder ça.

  4. #4
    Membre expérimenté Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Par défaut
    Désolé pour l'auteur mais je ne sais plus ou j'avais trouvé cette classe.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public class ScreenImage 
    {
      public static BufferedImage createImage(JComponent component) throws IOException 
      {
            Dimension d = component.getSize();
            Rectangle region = new Rectangle(0, 0, d.width, d.height);
            return ScreenImage.createImage(component, region);
      }
     
      public static BufferedImage createImage(JComponent component, Rectangle region) throws IOException 
      {
            boolean opaqueValue = component.isOpaque();
            component.setOpaque(true);
            BufferedImage image = new BufferedImage(region.width,region.height,BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = image.createGraphics();
            g2d.setClip(region);
            Graphics g = component.getGraphics();
            component.paint(g2d);
            g2d.dispose();
            component.paint(g);  
            component.setOpaque(opaqueValue);
            return image;
      }
     
      public static File createPNGfromBufferedImage(BufferedImage image, String path)
      {
         File file = new File(path);
         try 
         {
            ImageIO.write(image, "png", file);
            return file;
         }
         catch (IOException e) 
         {
            return null;
         }
      }
     
    }

Discussions similaires

  1. Réponses: 15
    Dernier message: 24/01/2007, 12h54
  2. Réponses: 2
    Dernier message: 17/08/2006, 14h50
  3. [C#] Est-il possible de faire une référence sans recopie ?
    Par AiSpirit dans le forum EDI/Outils
    Réponses: 8
    Dernier message: 17/07/2006, 09h56
  4. Réponses: 7
    Dernier message: 09/05/2006, 11h30
  5. Est il possible de faire une fusion
    Par boy569 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/02/2006, 13h58

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