Zone de texte dont la taille se règle automatiquement [Résolu]

Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 21 janv. 2006 à 11:36 - Dernière réponse :
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 21 janv. 2006 à 20:54
Bonjour à tous !


J'ai un petit problème : je voudrais faire apparaître du texte à l'écran (sur une JFrame), en utilisant un JLabel par exemple (jusque là tout va bien ). Mais je souhaiterais que, lorsque je crée mon JLabel, sa largeur s'adapte automatiquement au contenu du texte. Mon but est de pouvoir créer un JLabel qui ait pile la taille de mon texte, sans que je connaisse cette taille à l'avance ...

Peut-être que je peux utiliser autre chose qu'un JLabel, je suis ouvert à toute suggestion. Cependant, j'ai quelques contraintes :
- je dois pouvoir choisir la police de caractère et la taille de mon texte
- on ne doit pas voir ni le fond, ni le contour de la zone de texte (dans le cas d'un JLabel, on ferait un setBorder(null) et un setOpaque(false) ...)

Merci par avance pour votre aide !!!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Dernière intervention
23 juin 2006
- 21 janv. 2006 à 17:57
3
Merci
Tu peux utiliser FontMetric pour connaitre la taille de ton texte:

FontMetrics metrics = container.getFontMetrics(aLabel.getFont());
//On récupère la largeur du message du JLabel
int messageWidth = metrics.stringWidth(aLabel.getText());

puis tu redimensionne ton JLabel

"A game is a series of interesting choices." Sid Meier

Merci cs_ducheseb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_ducheseb
Messages postés
111
Date d'inscription
dimanche 28 septembre 2003
Dernière intervention
24 juin 2015
- 21 janv. 2006 à 20:54
0
Merci
Foooooormidable !!! ça marche !!!!
Merci beaucoup à toi !!

Pour ceux que ça intéresserait, une solution à ce problème serait donc :

JLabel jlabeltest = new JLabel("votre texte");
FontMetrics metrics = jlabeltest.getFontMetrics(jlabeltest.getFont());
//On récupère la largeur du message du JLabel
int messageWidth = metrics.stringWidth(jlabeltest.getText());
jlabeltest.setSize(messageWidth,50); // Hauteur arbitraire de 50

Il y a peut-être mieux, mais en tout cas, c'est simple et surtout, ça marche ;-) !!
Encore merci !!
Commenter la réponse de thenaoh

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.