J'essaye d'afficher une chaîne de caractère sur un Graphics2D avec une police de base, de manière à ce que la chaîne affichée rentre parfaitement dans un rectangle.
Pour l'instant, je convertis la chaîne en GlyphVector, je regarde la taille, je fais un rapport, je calcule une transformation, et je crée une nouvelle font.
La taille est parfaite, mais j'ai un problème de décalage, en effet quand je récupére la taille du GlyphVector, je n'ai pas l'espacement de la première lettre par rapport à l'extrême gauche, donc la chaîne fait la taille du rectangle mais est décalée.
Je voulais savoir si y'en a qui ont déjà fait un truc du genre, et si oui, si il y avait plus simple et/ou plus précis.
GlyphVector gv=getFont().createGlyphVector(frc,texte.toCharArray());
Rectangle box = gv.getOutline().getBounds();
AffineTransform trans = new AffineTransform();
trans.scale(largeur/box.getWidth(),hauteur/box.getHeight());
Font phont2 = getFont().deriveFont(trans);
graph.setFont(phont2);
graph.drawString(texte,x,y+hauteur);
|
genre là avec le i de Arial, j'ai un mega décalage (propotionnel à la taille de la police)
Message édité par raytaller le 03-02-2005 à 22:49:02