У меня есть JLabel
, который должен отображать текст в формате HTML. Тем не менее, я хочу ограничить это длиной 4 строки (и если да, дайте кнопку, чтобы увидеть все).Ограничить количество строк в html JLabel
До сих пор я пытался установить максимальный размер вручную или через диспетчер компоновки. Однако оба этих решения могут привести к отображению части строки.
Редактировать: Чтобы добавить немного более подробную информацию, мне нужно принудительно выполнить 4 строки, даже если вы правильно относитесь к обертке линий, изменяете размеры компонентов и изменяете размеры шрифтов. Я рассмотрел возможность изменения размера/изменения шрифтов, заменив метку на новую, которая подходит правильно.
JLabel
кажется обрабатывать неполные теги хорошо, так что я мог бы сделать что-то вроде бинарного поиска на входной строки вывода, какой символ будет заставить ее перейти к пределу 4 линии (с помощью FontMetric
, чтобы определить, сколько пикселей 4 строки будет be), а затем заменить существующую метку на новую. Большой недостаток этого подхода заключается в том, что мне нужно запускать вычисления каждый раз, когда пользователь меняет размер панели или меняет шрифты (и это похоже на грязный грязный хак).
HTML не использует «\ n» для новых строк, он использует тег
. – camickr
Я только понял, что после публикации и исправления, спасибо, хотя –
Это нормально, если единственный случай, который вас беспокоит, это перерывы, абзацы, элементы списка и т. Д. Однако JLabel также отлично справляется с переносом строк. Поэтому, если заданная строка ввода содержит слишком много символов, ярлык переносит их на следующую строку. (Обертка строк важна для моих целей, так как пользователь может изменить размер панели, создавая метку на произвольные размеры, и она должна по-прежнему ограничивать до 4 строк.) – Mike