Ширина JXTable для настройки в соответствии с содержимым

У меня есть JXTable, который создается следующим образом:

JScrollPane scrollPane = new JScrollPane();
contentPanel.add(scrollPane, BorderLayout.CENTER);
tbl = new JXTable();
tbl.setColumnSelectionAllowed(true);
tbl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tbl.setEditable(false);
scrollPane.setViewportView(tbl);

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

Как мне преодолеть эту проблему?


person Rico Strydom    schedule 10.07.2014    source источник
comment
Начните с попытки использовать JXTable#setAutoResizeMode< /a> на JTable.AUTO_RESIZE_OFF, а затем посмотрите этот пример. Это очень дорогая операция, так что будьте осторожны...   -  person MadProgrammer    schedule 10.07.2014
comment
setHorizontalScrollEnabled(true) сделал свое дело.   -  person Rico Strydom    schedule 10.07.2014
comment
кросспост   -  person mKorbel    schedule 10.07.2014


Ответы (1)


Вы должны использовать метод packAll: он изменяет размеры столбцов, чтобы они соответствовали области просмотра; если горизонтальная прокрутка включена, столбцы получат предпочтительную ширину.

person dawww    schedule 10.07.2014