I want to display some text in JLabel at runtime. I just want to know that is there anyway through which the text is displayed on multiple lines. For example, I want my text to be displayed in following format:
Line 1
Line 2
Line 3
String sText = "Line1 \n Line2 \n Line3";
jLabel1.setText (sText);
I tried the above code but its not working. Am I doing some thing wrong or does JLabel not support said feature?
If I'm unable to achieve the above functionality, how can I add multiple labels (one for each line) in JPanel at runtime?
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)...
by giving the JLabel constructor the String argument that is the text to describe what's in there. A JPanel, on the other hand, is a Panel, a designated part of the GUI. Given that it is a distinct part, it is naturally a Container, and should thus be given the stuff.
The short answer is yes, as a JLabel is a Container , so it can accept a Component (a JLabel is a subclass of Component ) to add into the JLabel by using the add method: JLabel outsideLabel = new JLabel("Hello"); JLabel insideLabel = new JLabel("World"); outsideLabel. add(insideLabel);
You can set a fixed the size by setting the minimum, preferred and maximum size: setMinimumSize(width, height); setPreferredSize(width, height); setMaximumSize(width, height);
JLabel
supports HTML. You can write:
String sText = "<html>Line1 <br/> Line2 <br/> Line3</html>";
jLabel1.setText (sText);
Edit: I added back slashes with br tag in order to make code working
use <br>
instead of using \n
and prefix it by <html>
like this
"<html>Line1 <br> Line2 <br> Line3</html>";
A better option for HTML formatted text in this case, is to drop the hard line breaks (except at the end of paragraphs) and set the width of the HTML using CSS.
As seen in the 2nd example (LabelRenderTest.java
) shown here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With