powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable: ресайз только одной колонки.
7 сообщений из 7, страница 1 из 1
JTable: ресайз только одной колонки.
    #38265587
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица (на всю ширину диалога) в которой несколько колонок: Name, Type, Size, Date.

Надо сделать так что бы при изменении размеров диалога ресайзилась только колонка Name, а остальные оставались текущего размера.

Как бы это организовать?
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38265665
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите исходный код JTable.doLayout(), переопределите этот метод и реализуйте в нем нужную вам логику.
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38265695
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПосмотрите исходный код JTable.doLayout(), переопределите этот метод и реализуйте в нем нужную вам логику.

Спасибо, то что нужно!
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38266130
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем проблема набрать в гугле - JTable resize only one column или exculde columns from resizing. Там куча советов и даже примеров.
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38266174
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38266200
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще вариант без танцев с бубном подогнать таблицу под -
Код: java
1.
setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);



т.е. ресайзиться будет последняя колонка и она должна стать Name - тогда вообще все в шоколаде.
...
Рейтинг: 0 / 0
JTable: ресайз только одной колонки.
    #38266500
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oneHalf,

Я другой пример нашел и на его основе сделал свою реализацию.

JTable.AUTO_RESIZE_LAST_COLUMN никак не подходит, так как меняет поведение ручного ресаза колонок, а мне надо только при изменении размеров контейнера.

Вот в итоге как я сделал (код на скала):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    override def doLayout() {
        // Viewport size changed. Change main column width.
        if (mdl.mainColumn > 0 && tableHeader != null &&  tableHeader.getResizingColumn == null) {
            val tcm = getColumnModel
            val delta = getParent.getWidth - tcm.getTotalColumnWidth
            val col = tcm.getColumn(mdl.mainColumn)

            col.setPreferredWidth(col.getPreferredWidth + delta)
            col.setWidth(col.getPreferredWidth)
        }
        else
            super.doLayout()
    }
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable: ресайз только одной колонки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]