2012-05-30 4 views
0

Я хочу, чтобы мой JLabel был высотой, необходимой для конкретной строки, назначенной тексту. Текстовая строка может содержать любое количество строк, которые используют строку \n в строке. Поэтому, если у вас есть строка "Hello\nit\nis\nme\n", высота метки будет автоматически отрегулирована так, чтобы она соответствовала 4 строкам.Высота JLabel для роста с количеством строк

Как достичь этого?

+0

Возможно, вы захотите сказать это в третий раз. :) Я бы использовал JTextArea, настроенный так, чтобы выглядеть как JLabel. –

ответ

2
  • Используйте надлежащее JTextComponent, а не использовать HTML форматированный текст в JLabel

  • Я думаю, что для "Hello\nit\nis\nme\n" следует отключить JTextArea право JComponent

2

JLabel обычно игнорируют символ новой строки. Чтобы получить многострочный текст, используйте либо mutli-line компонент, например JTextArea , либо используйте форматирование HTML на этикетке.

  1. Вот example of using HTML formatting (скриншот выше). В примере используются стили (CSS), чтобы автоматически вставлять разрывы строк. Это намного проще, чем вычислять, где вручную вставлять разрывы строк в текстовых блоках.
  2. Конечно, a JTextArea, имеющий методы, такие как setLineWrap(true) & setWrapStyleWord(true) также обрабатывает обертывание линии автоматически.
Смежные вопросы