Применение стилей HTML и CSS к компоненту Java Swing

Мне нужно написать многострочный текст внутри ячеек заголовка JTable.

По этой причине я использую HTML таким образом (это пример):

     JTable.getModel().getColumnModel().getColumn(i).setHeaderValue("
    <html>
          <div style='width:100%;height:300px;overflow:hidden'>
               <div style='width:100%;height:150px;overflow:hidden'>
                       text of line 1
               </div>
               <div style='width:100%;height:150px;overflow:hidden'>
                        text of line 2
               </div>
         </div>
   </html>
    ");  

Я хочу установить внутренний div 100% ширина и высота 150 пикселей. Но кажется, что высота, ширина и переполнение не работают.

В чем моя ошибка?

Механизм рендеринга Swing HTML (подмножество HTML 3.2) не поддерживает большую часть CSS. Сомневаюсь, что справится overflow:hidden.

Andrew Thompson 01.06.2019 15:41

Спасибо. Я использовал <table>, потому что мне нужно было заставить каждую строку не разрываться, поэтому я использовал <td nowrap>, принятый в HTML 3.2 :)

MDP 08.06.2019 14:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
142
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I have to write a multi-line text inside the header cells of a JTable.

Сохраняйте HTML простым:

setHeaderValue("<html>Line1<br>line2<br>&nbsp</html>");

Приведенное выше позволит использовать 3 строки текста (для всех столбцов заголовка).

Примечание: высота заголовка определяется высотой рендерера в первой колонке.

Спасибо за помощь. Я использовал <table>, потому что мне нужно было заставить каждую строку не разрываться, поэтому я использовал <td nowrap>.

MDP 08.06.2019 14:32

Другие вопросы по теме