Изменение размера столбцов JTable автоматически в зависимости от размера текста - PullRequest
4 голосов
/ 12 августа 2011

У меня есть JTable с некоторыми полями с длинным текстом, а некоторые с небольшим текстом.

По умолчанию это выглядит так:

enter image description here

Обратите внимание, что строки «Имя» и «Название» не укорочены.

Я хотел бы знать две вещи:

  1. Как вручную установить ширину заголовков (например, имя, заголовок, фамилия)
  2. Как автоматически изменить их размер в зависимости от текста.

Вот код:

    String[] columnNames = {"Name", "Title", "Surname", "ID"};
    Object[][] testData = {
            {"John", "Mr.", "Doe", "61020384U"},
    };

    nameTable = new JTable(testData, columnNames);
    nameTable.setFont(new Font("Tahoma", Font.PLAIN, 11));
    window.add(new JScrollPane(nameTable));

Я посмотрел Swing Tutorials , но я либо что-то пропустил, либо его там нет.

Ответы [ 2 ]

10 голосов
/ 12 августа 2011

Я думаю, что по умолчанию это 80 пикселей, но вы можете изменить это следующим образом, например ...

TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(100);     //Name
tcm.getColumn(1).setPreferredWidth(40);    //Title
tcm.getColumn(2).setPreferredWidth(400);    //Surname
tcm.getColumn(3).setPreferredWidth(40);    //ID

EDIT

к вашему второму вопросу лучше посмотреть здесь , пожалуйста, есть много полезных примеров о TableColumn

6 голосов
/ 12 августа 2011

2.Как автоматически изменить их размер в зависимости от текста.

Проверьте Настольный регулятор колонки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...