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 :

[Graphics]Copier le contenu d'une zone d'une Jframe


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut [Graphics]Copier le contenu d'une zone d'une Jframe
    Bonjour,

    Je cherche le moyen de copier une zone d'une JFrame ou d'un conteneur dans une bitmap.
    Par exemple, j'ai une Jframe qui fait 100*100 et je ne voudrais copier que la zone correspondant au point de départ (50,50) et aux point d'arrivée (100,100)

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En settant le clip et en effectuant une translation négative tu devrais pouvoir arriver à une solution jouable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public static BufferedImage getComponentRectangle(Component comp, int x,int y,int width,int height) {
            BufferedImage im = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g = im.createGraphics();
            g.translate(-x, -y);
            g.setClip(x, y, width, height);
            comp.paintAll(g);
            g.dispose();
            return im;
        }

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    a quoi sert le setClip ?
    Le dessin ne va pas démarrer au point (0,0) de ma bitmap non ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le setClip permet de déterminer la partie du composant qui sera dessinée (pour peu que les tous composants prennent bien en considération ce paramètre). Ce qui aura pour effet de limiter le nombre d'opération sur les graphics et accélèrera le dessin.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    Citation Envoyé par sinok Voir le message
    Le setClip permet de déterminer la partie du composant qui sera dessinée (pour peu que les tous composants prennent bien en considération ce paramètre). Ce qui aura pour effet de limiter le nombre d'opération sur les graphics et accélèrera le dessin.
    désolé mais y a encore un détail qui me chiffonne.
    Si je veux dessiner une région de mon composant dont la taille est de 100 par 100 et dont les cordonnées du point haut gauche sont (0,0).
    Je vais créé une bitmap de taille 100*100, faire une translate(-100,-100) et un setClip(100,100,100,100) mais dans ce cas, la zone de clipping est au delà des dimensions de la bitmap non ?

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    L'appel que tu fais ici serait bon si la zone que tu veux capturer a pour origine le point (100,100) et qui aurait pour hauteur 100 et largeur 100. Donc ça ne correspond pas à ce que tu cherche.


    Dans ton cas l'appel serait plutôt un suivi d'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.setClip(0,0,100,100);
    Vu que pour toi le point d'origine est le (0,0)

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    ok, merci pour tes explications...

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 11h17
  2. Réponses: 4
    Dernier message: 15/10/2009, 14h33
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 14h35
  4. Réponses: 3
    Dernier message: 26/04/2008, 18h58
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

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