In Java when the text of the JLabel could not be displayed due to lack of space the text is truncated and "..." is added in the end.
How can I easily find out if currently JLabel displays full text or the truncated?
EDIT:
I see that there is a way to find out the size of the text by using FontMetrics
. However this solution doesn't fully answers the question. In the case the text of JLabel contains HTML decorations the metrics.stringWidth()
would also calculate width of HTML tags. So it could happen that result of metrics.stringWidth()
would be grater than JLabel's width but still the text would be displayed correctly.
Is there a way know what decision took the JLabel itself while displaying the text. Has it decided to truncate the text or not.
getSize() * widthRatio); int componentHeight = label. getHeight(); // Pick a new font size so it will not be larger than the height of label. int fontSizeToUse = Math. min(newFontSize, componentHeight); // Set the label's font size to the newly determined size.
JLabel is a component used for displaying a label for some components. It is commonly partnered with a text field or a password field. JTextField is an input component allowing users to add some text.
JLabel is a class of java Swing . JLabel is used to display a short string or an image icon. JLabel can display text, image or both . JLabel is only a display of text or image and it cannot get focus .
The ellipsis is added by the label's UI delegate, typically a subclass of BasicLabelUI
, as part of it's layout and preferred size calculation. The method layoutCL()
may be overridden to examine the geometry, as shown on this example.
As a practical matter, I'd ignore the elision and show the full text in a tool tip.
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