powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить текущие размеры компоненты в Swing?
9 сообщений из 9, страница 1 из 1
Как получить текущие размеры компоненты в Swing?
    #39565974
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Появилась необходимость получать текущие размеры компоненты (в моём случае - таблицы, причём - именно ширину), и в зависимости от этого размера особым образом выстраивать внутренние компоненты и особым образом задавать их размеры (в моём случае, это столбцы, должна меняться их ширина). Есть ли такая возможность в Swing? И если да, то как это делается?

ЗЫ Метод getWidth() выдаёт всегда ноль. Причём, по идеи же должно учитываться разворачивание окна и его сворачивание (а также изменение его размеров, если размеры компоненты при этом тоже меняются).
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39565990
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichЗдравствуйте. Появилась необходимость получать текущие размеры компоненты (в моём случае - таблицы, причём - именно ширину), и в зависимости от этого размера особым образом выстраивать внутренние компоненты и особым образом задавать их размеры (в моём случае, это столбцы, должна меняться их ширина). Есть ли такая возможность в Swing? И если да, то как это делается?

ЗЫ Метод getWidth() выдаёт всегда ноль. Причём, по идеи же должно учитываться разворачивание окна и его сворачивание (а также изменение его размеров, если размеры компоненты при этом тоже меняются).

getWidth() не всегда выдаёт ноль, а только до того как размеры контрола вычеслены и заданы. Ваша таблица видна на экране когда вы getWidth() вызываете?

В целом у вас подход в корне не верный. JTable динамически вычисляет размеры колонок и задаёт их исходя из собственных размеров и заданных параметров.

Продвинутый Swing лучше всего изучать через чтение исходного кода. Поэтому рекомендую вам прочитать метод JTable.doLayout() и исходя из полученых знаний решить что вам будет удобнее переопределить, чтобы задать желаемое поведение.
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566011
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Просто у меня есть JTabbedPanel с таблицами на каждой вкладке. В каждой таблице - своя информация, соответственно, и разное количество столбцов (по идеи, и ширина столбцов должна быть разная, под контент, но мне некритично, могу везде поставить 100 или 200 (что собственно, я и сделал)). Заголовки столбцов задаю через TableModel (метод setColumnIdentifiers()). Сейчас получается, что у некоторых таблиц столбцы не входят, и я использую полосу прокрутки, чтобы их посмотреть. В других же таблицах, столбцов меньше некоторого значения, и почти половина таблицы - пустая. Это и хочу исправить.
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566015
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLichЭто и хочу исправить.
Ну, так это и надо исправлять, а не ту херню про getWidth() что вы написали вышел.
JTable.setAutoResizeMode() пробовали?
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566017
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxLich,

А layout manager у JTabbedPane задан?
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566022
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Настройка ширины столбцов у меня идёт сразу же при задании модели таблицы. Модель таблицы задаётся сразу при создании таблицы, и плюс потом, когда в неё загружаются данные (в виде этой модели). Соответственно, настройка ширины столбов идёт ещё до отображения всех графических компонент.
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566035
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczMaxLichЭто и хочу исправить.
Ну, так это и надо исправлять, а не ту херню про getWidth() что вы написали вышел.
JTable.setAutoResizeMode() пробовали?
Так именно из-за JTable.setAutoResizeMode() и стало такое со столбцами. До этого всё нормально было со столбцами, только ширина была не очень. Насколько я помню, я пытался задавать фиксированную ширину, но без setAutoResizeMode() не было никакого эффекта.
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566036
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Не задавал. Просто кидаю на каждую вкладку панель с таблицей.
...
Рейтинг: 0 / 0
Как получить текущие размеры компоненты в Swing?
    #39566042
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, пока привязал к размерам главного окна. Вроде нормально. В принципе, это у меня больше тестовое приложение, поэтому особо графика не важна.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить текущие размеры компоненты в Swing?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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