Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Newline in JLabel

How can I display a newline in JLabel?

For example, if I wanted:

Hello World!
blahblahblah

This is what I have right now:

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

This is what is displayed:

Hello World!blahblahblah

Forgive me if this is a dumb question, I'm just learning some Swing basics...

like image 719
mportiz08 Avatar asked Jul 07 '09 02:07

mportiz08


People also ask

How do you insert a new line in JLabel?

Surround the string with <html></html> and break the lines with <br/> . just a little correction: use <br /> instead of just <br> ... this is recommended way of doing it (to not miss any closing tags)...

How do I add a new line to a JPanel?

Make a separate JPanel for each line, and set the dimensions to fit each word: JLabel wordlabel = new JLabel("Word"); JPanel word1 = new JPanel(); word1. setPreferredSize(new Dimension(#,#);

How do you wrap text in JLabel?

As per @darren's answer, you simply need to wrap the string with <html> and </html> tags: myLabel. setText("<html>"+ myString +"</html>"); You do not need to hard-code any break tags.


2 Answers

Surround the string with <html></html> and break the lines with <br/>.

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
like image 58
freitass Avatar answered Oct 18 '22 21:10

freitass


You can try and do this:

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

The advantages of doing this are:

  • It replaces all newlines with <br/>, without fail.
  • It automatically replaces eventual < and > with &lt; and &gt; respectively, preventing some render havoc.

What it does is:

  • "<html>" + adds an opening html tag at the beginning
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;") escapes < and > for convenience
  • .replaceAll("\n", "<br/>") replaces all newlines by br (HTML line break) tags for what you wanted
  • ... and + "</html>" closes our html tag at the end.

P.S.: I'm very sorry to wake up such an old post, but whatever, you have a reliable snippet for your Java!

like image 37
TheSola10 Avatar answered Oct 18 '22 19:10

TheSola10