caractère de saut de ligne dans le JLabel.setText()
Comment puis-je insérer un saut de ligne lorsque je suis à l'aide de JLabel.setText()? J'ai essayé d'utiliser le langage Html, mais peut sembler pour le faire fonctionner pour setText, uniquement pour la déclaration initiale de la jLabel
la façon de le faire lors de la première déclarant le jlabel est:
label = new JLabel("<html>Hello World!<br>blahblahblah</html>");
mon code:
textString += "<html> quantityTextField.getText() +
theInventory.findItem(UPCTextField.getText()).toString() + <br> </html>";
purchaseInfo.setText( textString);
il affiche les balises html et les noms de méthode au lieu de la chaîne de caractères retournée par les méthodes
Veuillez inclure une sscce, sinon nous allons tous être à gauche de prise de vue dans l'obscurité.
viens de le faire. prendre un coup d'oeil
Ce n'est PAS un SSCCE. Veuillez lire le lien!!!
viens de le faire. prendre un coup d'oeil
Ce n'est PAS un SSCCE. Veuillez lire le lien!!!
OriginalL'auteur trs | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
Si votre
setText()
appel changements préféré dimensions de laJLabel
, alors vous devez faire appelrevalidate()
sur le conteneur pour obtenir la mise en page à refaire.En regardant l'extrait de code que vous avez ajouté, je vois
à la fin de la ligne, ce qui n'est pas vraiment rien faire de toute façon-et beaucoup de mal cité des appels de méthode qui sont faites de façon à ce que les noms de méthode font partie de l'HTML. Si vous faites quelque chose le long des lignes de
votre nouvelle ligne devrait apparaître.
Ce n'est pas pertinente? Si il y a une seule ligne de texte, et qu'il appelle setText(), il ne va pas le voir une deuxième ligne, sans avoir à refaire la mise en page.
Vrai uniquement si l'étiquette dépasse les dimensions du conteneur, le contraire n'est pas vrai du tout.
Pour un retour à la ligne, il suffit de faire
\n
essayé, ça ne fonctionne pas
OriginalL'auteur Ernest Friedman-Hill
La mise en forme de votre texte est tout faux. C'est la chaîne que vous êtes en train de réglage:
Maintenant, dites-moi le problème n'est pas trop évident (en passant, le HTML n'est pas votre seul problème)... de toute façon, pour plus d'informations, veuillez consulter Comment Utiliser le HTML dans les Composants Swing.
OriginalL'auteur mre
drôle.
eh bien, vous avez inclus votre "appels de méthode" dans la chaîne, de sorte qu'ils n'ont pas été évaluées. "quantityTextField.getText()" est une Chaîne de caractères, quantityTextField.getText() renvoie le résultat d'un appel à la méthode.
OriginalL'auteur MarianP
Vous semble être la concaténation de quelque chose avec votre chaîne html.
Entourent le texte dans la
<html>
balises et d'utiliser uniquement la<html>
tags une fois.Faire un Système.sur 'textString' et dites-nous ce que c'est.
OriginalL'auteur Garrett Hall
D'expérience personnelle, je ne voudrais pas utiliser des balises HTML dans un JLabel. Si vous ne faites pas la mise en forme (dont il semble que vous ne l'êtes pas, d'autres que d'insérer un saut de ligne), il est préférable d'utiliser des codes de caractères comme '\n' en raison de la simplicité et de la taille.
[code]
label = new JLabel("Hello World!\nblahblahblah");
textString += quantityTextField.getText() +
theInventory.findItem(UPCTextField.getText()).toString() + "\n";
purchaseInfo.setText( textString);
[/code]
La raison, la méthode de noms apparaissaient est parce que tu avais enfermés dans des guillemets. Il prenait les méthodes de texte pour écrire à l'écran, et non pas un ensemble d'instructions à exécuter.
OriginalL'auteur KKeiper1103
Quiconque de ne pas tester leur réponse devrait qualifier de "je pense".
Comme d'autres l'ont dit, \n ne fonctionnera pas .revalidate() n'est pas nécessaire, et le html est. Voir Saut de ligne dans le JLabel
OriginalL'auteur gherson