У меня есть JLabel
, который должен отображать текст в формате html. Тем не менее, я хочу ограничить это длиной в 4 строки (и если да, предоставьте кнопку, чтобы увидеть все).
До сих пор я пытался установить максимальный размер вручную или с помощью диспетчера макетов. Однако оба эти решения могут привести к отображению части строки.
edit: Чтобы добавить немного больше деталей, мне нужно задать 4 строки даже при правильном соблюдении переноса строк, изменении размеров компонентов и изменении размеров шрифта. Я рассмотрел обработку изменений размера / размера шрифта, заменив метку новой, которая подходит правильно.
JLabel
, кажется, хорошо обрабатывает неполные теги, поэтому я, вероятно, мог бы сделать что-то вроде бинарного поиска по входной строке и найти, какой символ заставил бы его превысить предел в 4 строки (используя FontMetric
для определения количества пикселей 4 строки), а затем заменить существующий ярлык на новый. Большим недостатком этого подхода является то, что мне нужно запускать вычисления каждый раз, когда пользователь изменяет размеры панели или изменяет шрифты (и это похоже на грязный грязный хак).