Определить, обрезается ли текст JLabel? - PullRequest
0 голосов
/ 10 мая 2019

У меня есть JLabel, и по мере расширения окна JFrame размер шрифта автоматически изменяется. Текст, содержащийся в JLabel, может быть сокращен или помещен в полный текст, например:

Small and Large Window Exmaple

Поскольку я использую «AbsoluteLayout» Eclipse для Swing (frame.getContentPane().setLayout(null)), JLabels не будет автоматически изменять размер текста и является фиксированным значением. Обратите внимание, что я изменяю эти фиксированные значения при изменении размера окна. У меня уже есть алгоритм для этого.

Вместо того, чтобы делать большие вычисления, определяющие, достаточно ли велико окно для отображения не сокращенного текста, я хотел бы знать, есть ли способ определить, будет ли мой текст выглядеть так:

Cut off JLabel text

Если бы я мог знать, что текст будет обрезан (из-за длинного текста в маленькой JLabel), я мог бы сократить текст, в противном случае отобразить его полностью.

Есть ли способ сделать то, что я спрашиваю, все еще используя AbsoluteLayout?

Примечание: Необходимо, чтобы я использовал AbsoluteLayout, поэтому не беспокойтесь комментировать его, даже если это обычно считается плохой практикой.

1 Ответ

1 голос
/ 10 мая 2019

Если бы я мог знать, что текст будет обрезан (из-за длинного текста в маленькой JLabel), я мог бы сократить текст, в противном случае отобразить его полностью.

Сравнитьширина getPreferredSize() и getSize().

...