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 :

Connaitre la taille d'un 'composant' texte


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2005
    Messages : 175
    Par défaut Connaitre la taille d'un 'composant' texte
    Je vais essayer d'etre clair.
    La methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [i]void Graphics.drawString(String texte, int posX, int posY)[/i]
    dessine un texte dans un endroit precis, la taille et la police de ce texte dependent de l'environement.

    Cette méthode ne renvoie rien, mais j'aimerai bien recuperer le rectangle exclusif qui contient le texte que je viens d'afficher de manière a pouvoir faire par la suite un setBounds et pouvoir déplacer ainsi le composant Texte (les methodes de deplacement, de drag and drop sont deja implémentées)

    Avez vous une idée?
    d'avance merci

  2. #2
    Membre confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Par défaut
    je ne suis pas sur mais essaie d'utiliser le methode getFont() de la classe Graphics qui te revoit un objet du type Font duquel tu peux extraire ton texte.
    je n'ai pas testé donc c'est à vérifier

  3. #3
    Membre Expert 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
    Par défaut
    Il existe aussi la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.awt.font.TextLayout
    qui contient en particulier une méthode getBounds() semblant répondre à ton besoin.

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2005
    Messages : 175
    Par défaut
    en effet, il faut y aller a coup de TextLayout qui est fait pour ca !

    N'utilisant pas Graphics2D mais Graphics dans mon application (on ne m'y reprendra plus), j'ai du bidouiller un peu , mais ca marche

    Voici un exemple avec gestion de zoom

    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
    float z = UtilityManager.zoomvalue;
                g.setColor(Color.BLACK);
                Font layoutFont = new Font("Arial", Font.PLAIN, (int)(12 * z));
                g.setFont(layoutFont);
                //FontRenderContext frc = g.getFontRenderContext();
                FontRenderContext frc = new FontRenderContext(null, true, true);
                TextLayout layout = new TextLayout(this.getName(), layoutFont, frc);
                Rectangle2D bounds = layout.getBounds();
                g.drawString(this.getName(), (int) (getPosWidth().intValue() * z),
                        (int) ((getPosHeight().intValue() * z) + bounds.getHeight()));
     
                this.setBounds((int) ((getPosWidth().intValue() * z)),
                        (int) (getPosHeight().intValue() * z),
                        (int) (bounds.getWidth()),
                        (int) (bounds.getHeight()));
    merci de votre aide

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

Discussions similaires

  1. Problème pour connaitre la taille d'un composant
    Par Djelangelo dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/04/2011, 14h07
  2. Connaitre la taille d'un texte "graphique".
    Par zuzuu dans le forum Graphisme
    Réponses: 2
    Dernier message: 03/07/2008, 16h08
  3. [D6] Connaitre la taille en pixel d'un texte
    Par bubulemaster dans le forum Débuter
    Réponses: 3
    Dernier message: 25/01/2008, 10h29
  4. connaitre la taille exacte du composant
    Par Zorgz dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 28/03/2007, 16h15

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