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

Langage Java Discussion :

Dessiner un texte en forçant la largeur


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Points : 48
    Points
    48
    Par défaut Dessiner un texte en forçant la largeur
    Bonjour.

    Dans mon applet je dessine des textes dans un Graphics2D.

    j'ai besoin que ces textes "rentrent" dans un cadre défini. Il faudrait donc que je force la largeur tout en garant la taille de la Font utilisée.
    La méthode drawString ne le permet pas

    Auriez vous une idée ? Je ne sais pas par quel bout prendre le pb ...


    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Pas compris, comment tu peux garder la même taille mais rentrer dans une largeur trop petite ? Tu veux un retour à la ligne si tu arrives vers la largeur max ?
    Dans ce cas c'est juste une question de mesurer les textes et identifier les espaces où tu peux les couper.

    Pour des cas plus compliqués, il est possible d'utiliser LineBreakMeasurer et TextLayout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Points : 48
    Points
    48
    Par défaut
    Bonjour thelvin.

    Non, il ne faut pas que le texte soit découper. Tout doit être sur la même ligne.

    J'ai un paramètre que je lis dans un fichier et qui la défini la largeur moyenne des caractères. . Il faut donc que je modifie ma Font en utilisant deriveFont(AffineTransform trans).

    Reste a définir "AffineTransform". Comme je veux modifier la largeur je procéderais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Font myFont = new Font(name, style, size);
     
    AffineTransform trans = new AffineTransform();
    trans.scale(1, deformY);
     
    Font transFormFont = myFont.deriveFont(trans);
     
    Graphics g = new Graphics ();
    g.setFont(transFormFont);
    Reste a déterminer "deformY" en récupérant la largeur moyenne des caractères de la Font avant transformation.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ben, une règle de 3, non ?
    Largeur moyenne des caractères, nombre de caractères,
    => Largeur prédictible... (Mais bon, un FontMetrics te donnerait la largeur réélle.)

    + largeur disponible.
    => facteur de réduction à appliquer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Points : 48
    Points
    48
    Par défaut
    Tout a fait.

    mais je ne voyais pas comment récupérer la largeur moyenne des caractères d'une Font sans connaitre les textes que je devrait dessiner ultérieurement ...

Discussions similaires

  1. Dessiner du texte ?
    Par tintin72 dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 01/05/2007, 12h02
  2. Améliorer le dessin du texte d'un TMenuItem
    Par Sunchaser dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/06/2006, 23h35
  3. Dessiner du texte à l'écran
    Par rolkA dans le forum DirectX
    Réponses: 2
    Dernier message: 22/07/2003, 12h34

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