Comment afficher une nouvelle ligne dans JLabel
?
Par exemple, si je voulais:
Bonjour le monde!
blahblahblah
C'est ce que j'ai en ce moment:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
C'est ce qui est affiché:
Bonjour tout le monde! Blahblahblah
Pardonnez-moi s'il s'agit d'une question idiote, j'apprends quelques notions de base sur Swing ...
Entourez la chaîne avec <html></html>
et brisez les lignes avec <br/>
.
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
Vous pouvez essayer et faire ceci:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
Les avantages de cela sont:
<br/>
, Sans faute.<
Et >
Par <
Et >
, Ce qui évite certains dégâts de rendu.Qu'est-ce qu'il fait est:
"<html>" +
Ajoute une balise d'ouverture html
au début.replaceAll("<", "<").replaceAll(">", ">")
échappe <
et >
pour plus de commodité.replaceAll("\n", "<br/>")
remplace toutes les nouvelles lignes par les balises br
(saut de ligne HTML) correspondant à vos besoins.+ "</html>"
ferme notre balise html
à la fin.P.S .: Je suis vraiment désolé de réveiller un article aussi ancien, mais peu importe, vous avez un extrait fiable pour votre Java!
Tu peux faire
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
et il sera automatiquement emballé, le cas échéant.
Vous pouvez utiliser le composant MultilineLabel dans les composants Jide Open Source.
Merci Aakash d'avoir recommandé JIDE MultilineLabel. StyledLabel de JIDE a également été amélioré récemment pour prendre en charge plusieurs lignes. Je le recommande plutôt que le MultilineLabel car il possède de nombreuses autres fonctionnalités intéressantes. Vous pouvez consulter un article sur StyledLabel ci-dessous. C'est toujours gratuit et open source.
JLabel est en fait capable d'afficher du code HTML rudimentaire. C'est pourquoi il ne répond pas à votre utilisation du caractère de nouvelle ligne (contrairement à System.out, par exemple).
Si vous mettez le code HTML correspondant et utilisez <BR>
, vous obtiendrez vos nouvelles lignes.