Comment mot de placer du texte dans JLabel?
Comment peut-texte comme "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" qui dépasse la largeur de la JLabel être enveloppé?
J'ai essayé d'enfermer le texte dans les balises html, mais pas de chance.
Veuillez donner vos suggestions.
le double ne parvient pas à fournir une solution lorsque le mot n'a pas d'espace char. Je veux dire quand il n'y a qu'un seul mot qui dépasse la largeur de jlabel, ce qui devrait être fait dans ce cas?
OriginalL'auteur Nadeem | 2014-10-17
Vous devez vous connecter pour publier un commentaire.
Une approche commune est de ne pas utiliser un
JLabel
et au lieu d'utiliser unJTextArea
avec word-wrap et la ligne sous tension. Vous pouvez ensuite décorer le JTextArea pour la faire ressembler à un JLabel (bordure, la couleur de fond, etc.). [Modifié pour inclure la ligne de l'exhaustivité par DSquare commentaire]Une autre approche est d'utiliser de l'HTML dans votre étiquette, comme vu ici. Les mises en garde il y a
Vous pourriez avoir à prendre soin de certains caractères HTML peut interpréter/convertir texte brut
Appel
myLabel.getText()
va maintenant contenir du HTML (avec éventuellementéchappé et/ou de caractères convertis en raison #1
EDIT: Voici un exemple pour le JTextArea approche:
setLineWrap(true)
maissetWrapStyleWord(false)
serait de travailler.Vous avez raison à propos du retour à la ligne. Cependant, l'utilisation de word-wrap serait également nécessaire que tous les autres mots qui ne sont pas plus longues que la longueur de l'étiquette (qui risquait d'être la plupart d'entre eux) sont encore emballés de façon appropriée. Sans elle, ils seraient en rupture sans ménagement et la fin de la longueur de l'étiquette, ce qui est probablement indésirables (mais ne sont pas mentionnés dans l'OP). Word-wrap, pour faux dans mon exemple pour voir ce que je veux dire.
Je suis d'accord que word-wrap est généralement souhaitable, mais ce n'est pas la question ici. Depuis word-wrap remplace la valeur par défaut de caractère-wrap comportement c'est pas souhaitée par les OP. Veuillez régler
String text = "aaa...aaa"
(sans les espaces, le cas en question), et de voir comment votre code ne résout pas le problème.Il fonctionne pour moi (voir photo). Ou peut-être que je ne suis pas la compréhension de l'exigence.
Désolé, vous avez raison, j'ai pensé qu'il surdéfini le comportement par défaut, mais il est en fait une extension.
OriginalL'auteur splungebob