在Java中,由于空间不足而无法显示JLabel的文本时,文本将被截断并在末尾添加“ …”。
如何轻松找出当前JLabel是显示全文还是被截断?
编辑:
我看到有一种方法可以使用来找出文本的大小FontMetrics。但是,此解决方案无法完全回答问题。如果JLabel的文本包含HTML装饰,则metrics.stringWidth()还将计算HTML标签的宽度。因此,可能发生的结果metrics.stringWidth()是比JLabel的宽度更大,但仍然可以正确显示文本。
FontMetrics
metrics.stringWidth()
有没有办法知道在显示文本时JLabel自己做出了什么决定。是否决定截断文本。
标签的UI委托(通常是的子类)添加省略号BasicLabelUI,作为其布局和首选尺寸计算的一部分。如layoutCL()本示例所示,可以重写该方法以检查几何形状。
BasicLabelUI
layoutCL()
实际上,我会忽略省略号,并在工具提示中显示全文。