[Java] JLabel wrap
Résolu
zzzer
Messages postés
906
Date d'inscription
Statut
Membre
Dernière intervention
-
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [Java] JLabel wrap
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Salut, toi :-)
Est-ce que tu peux te permettre d'insérer des <br> ponctuels? C'est ce que je fais, je n'ai pas réussi moi non plus à avoir un retour auto à la ligne...
(I) Je n'ai pas testé à limiter les dimensions des JLabel (via max / preferred size), têtre comme ça...
++
Est-ce que tu peux te permettre d'insérer des <br> ponctuels? C'est ce que je fais, je n'ai pas réussi moi non plus à avoir un retour auto à la ligne...
(I) Je n'ai pas testé à limiter les dimensions des JLabel (via max / preferred size), têtre comme ça...
++
Quel est l'effet d'un max size défini ? La JLabel ne respecte pas la dimension ou bien tronque le texte?
Ca ne respecte pas la dimension, le JLabel s'étend jusqu'à la fin de la phrase, même si ça dépasse la fenêtre.
Mais je viens de trouver une fonction en or :
Source: https://www.geekyramblings.net
Ca marche nickel, merci à lui !
Mais je viens de trouver une fonction en or :
private void wrapLabelText(JLabel label, String text) { FontMetrics fm = label.getFontMetrics(label.getFont()); Container container = label.getParent(); int containerWidth = container.getWidth(); BreakIterator boundary = BreakIterator.getWordInstance(); boundary.setText(text); StringBuffer trial = new StringBuffer(); StringBuffer real = new StringBuffer("<html>"); int start = boundary.first(); for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next()) { String word = text.substring(start,end); trial.append(word); int trialWidth = SwingUtilities.computeStringWidth(fm, trial.toString()); if (trialWidth > containerWidth) { trial = new StringBuffer(word); real.append("<br>"); } real.append(word); } real.append("</html>"); label.setText(real.toString()); }
Source: https://www.geekyramblings.net
Ca marche nickel, merci à lui !
Et j'ai essayé avec le setSize(), mais rien à faire...