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

2D Java Discussion :

PaintComponent() ou setIcon()


Sujet :

2D Java

  1. #1
    Membre actif Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 201
    Points
    201
    Par défaut PaintComponent() ou setIcon()
    Bonjour,
    J'ai des composants qui étendent JLabel,ces label doivent avoir une image de fond qui à la taille de mon composant et ces composant sont redimensionable.
    Ma question est : Vaut il mieux que je surchage la methode paintcomponent et redimensionner mon image a chaque fois que mon label est redessiné ou surveiller le redimenssionnement de mon label ,réajuster la taille de l'image et appeler la methode setIcon?
    Merci pour vos réponse.
    On peut tout faire seul avec de la persévérance mais ça va plus vite à plusieurs.

    Je ne répondrais pas aux questions technique par MP .

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    en redéfinissant la méthode paintComponent(), c'est la seule chose que tu auras à faire :
    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
     
    private Image image;
    ...
    @Override
    protected void paintComponent(Graphics g) {
       Rectangle bounds = getBounds();
       Insets insets = getInsets();
       bounds.width -= insets.left + insets.right;
       bounds.height -= insets.top + insets.bottom;
       bounds.x += insets.left;
       bounds.y += insets.top;
     
       g.drawImage((image, bounds.x, bounds.y, bounds.width, bounds.height, getBackground(), null);
    );
    }

  3. #3
    Membre actif Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 201
    Points
    201
    Par défaut
    Ok ,merci pour la réponse. je pensais bien que redefinir paintComponent était plus performant mais je voulais en avoir la confirmation.
    On peut tout faire seul avec de la persévérance mais ça va plus vite à plusieurs.

    Je ne répondrais pas aux questions technique par MP .

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

Discussions similaires

  1. [JPanel] paint, paintComponent et repaint ?
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 08/02/2013, 17h38
  2. pb avec seticon dans un bouton
    Par firejocker dans le forum MFC
    Réponses: 22
    Dernier message: 02/03/2006, 19h32
  3. [JLabel]fond transparent et probleme paintComponent
    Par ehmppowa dans le forum Composants
    Réponses: 28
    Dernier message: 05/12/2005, 15h39
  4. Réponses: 4
    Dernier message: 12/09/2005, 19h23
  5. [debutant][swing] pb dans un paintComponent
    Par tambourin dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 03/06/2004, 20h27

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