Question

Comment puis-je afficher une nouvelle ligne dans JLabel?

Par exemple, si je voulais:

  

Bonjour tout le monde!
  blahblahblah

est ce que j'ai en ce moment:

JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);

Voici ce qui est affiché:

  

blahblahblah Bonjour tout le monde!

Pardonnez-moi si cela est une question stupide, je suis en train d'apprendre quelques notions de base Swing ...

Était-ce utile?

La solution

Entourez la chaîne avec <html></html> et briser les lignes avec <br/>.

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);

Autres conseils

Vous pouvez essayer de faire ceci:

myLabel.setText("<html>" + myString.replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>") + "</html>")

Les avantages de le faire sont les suivants:

  • Il remplace tous les sauts de ligne avec <br/>, sans faute.
  • Il remplace automatiquement < éventuelle et > avec &lt; et &gt; respectivement, ce qui empêche certains rendent des ravages.

Ce qu'il fait est:

  • "<html>" + ajoute une balise html d'ouverture au début
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;") échappe < et > pour plus de commodité
  • .replaceAll("\n", "<br/>") remplace toutes les nouvelles lignes de br (saut de ligne HTML) tags pour ce que vous vouliez
  • ... et + "</html>" ferme notre tag html à la fin.

P.S .: Je suis désolé de se réveiller un vieux poste, mais peu importe, vous avez un extrait fiable pour votre Java!

Vous pouvez utiliser le composant MultiLineLabel dans les composants Open Source Jide.

http://www.jidesoft.com/products/oss.htm

Vous pouvez faire

JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);

et il se terminera automatiquement le cas échéant.

Merci Aakash pour recommander JIDE MultiLineLabel. StyledLabel de JIDE est également améliorée récemment pour soutenir plusieurs lignes. Je le recommande sur le MultiLineLabel car il a beaucoup d'autres fonctionnalités. Vous pouvez consulter un article sur StyledLabel ci-dessous. Il est encore libre et open source.

http://www.jidesoft.com/articles/StyledLabel.pdf

JLabel est en fait capable d'afficher du code HTML rudimentaire, ce qui est la raison pour laquelle il ne répond pas à l'utilisation du caractère de nouvelle ligne (contrairement à, disons, System.out).

Si vous mettez dans le <BR> HTML et utilisé correspondant, vous obtiendrez votre retour à la ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top