JTable: установить ширину столбца на основе размера заголовка

У меня есть JTable а заголовок содержит строку другого типа:

table = new JTable(new DefaultTableModel(info, myHeader){
        public boolean isCellEditable(int row, int column) {
            //disable table editing
            return false;
        }
    };
    header = table.getTableHeader();
    JScrollPane scroll_pane = new JScrollPane(table);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    table.getTableHeader().setReorderingAllowed(false);
    table.getTableHeader().setResizingAllowed(false);

myHeader массив строк содержит строки заголовка таблицы Эти строки имеют разную длину, и я хотел бы, чтобы длина всех столбцов была равна, и это может содержать самую большую строку внутри myHeader, Фактически, теперь стандартная длина столбцов не позволяет всем строкам идеально вписываться внутрь. Как мне это сделать?

1 ответ

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

Вы можете вручную вызвать getColumnHeaderWidth() метод для всех столбцов, чтобы получить максимальную ширину (сначала нужно сделать метод публичным).

Затем, когда вы знаете максимальную ширину, вы можете вручную установить ширину каждого столбца. Прочитайте учебник Swing по установке и изменению ширины столбцов для получения дополнительной информации.

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