|
|
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Появилась необходимость получать текущие размеры компоненты (в моём случае - таблицы, причём - именно ширину), и в зависимости от этого размера особым образом выстраивать внутренние компоненты и особым образом задавать их размеры (в моём случае, это столбцы, должна меняться их ширина). Есть ли такая возможность в Swing? И если да, то как это делается? ЗЫ Метод getWidth() выдаёт всегда ноль. Причём, по идеи же должно учитываться разворачивание окна и его сворачивание (а также изменение его размеров, если размеры компоненты при этом тоже меняются). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:37 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
MaxLichЗдравствуйте. Появилась необходимость получать текущие размеры компоненты (в моём случае - таблицы, причём - именно ширину), и в зависимости от этого размера особым образом выстраивать внутренние компоненты и особым образом задавать их размеры (в моём случае, это столбцы, должна меняться их ширина). Есть ли такая возможность в Swing? И если да, то как это делается? ЗЫ Метод getWidth() выдаёт всегда ноль. Причём, по идеи же должно учитываться разворачивание окна и его сворачивание (а также изменение его размеров, если размеры компоненты при этом тоже меняются). getWidth() не всегда выдаёт ноль, а только до того как размеры контрола вычеслены и заданы. Ваша таблица видна на экране когда вы getWidth() вызываете? В целом у вас подход в корне не верный. JTable динамически вычисляет размеры колонок и задаёт их исходя из собственных размеров и заданных параметров. Продвинутый Swing лучше всего изучать через чтение исходного кода. Поэтому рекомендую вам прочитать метод JTable.doLayout() и исходя из полученых знаний решить что вам будет удобнее переопределить, чтобы задать желаемое поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:51 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Просто у меня есть JTabbedPanel с таблицами на каждой вкладке. В каждой таблице - своя информация, соответственно, и разное количество столбцов (по идеи, и ширина столбцов должна быть разная, под контент, но мне некритично, могу везде поставить 100 или 200 (что собственно, я и сделал)). Заголовки столбцов задаю через TableModel (метод setColumnIdentifiers()). Сейчас получается, что у некоторых таблиц столбцы не входят, и я использую полосу прокрутки, чтобы их посмотреть. В других же таблицах, столбцов меньше некоторого значения, и почти половина таблицы - пустая. Это и хочу исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:04 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
MaxLichЭто и хочу исправить. Ну, так это и надо исправлять, а не ту херню про getWidth() что вы написали вышел. JTable.setAutoResizeMode() пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:08 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
MaxLich, А layout manager у JTabbedPane задан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:09 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Настройка ширины столбцов у меня идёт сразу же при задании модели таблицы. Модель таблицы задаётся сразу при создании таблицы, и плюс потом, когда в неё загружаются данные (в виде этой модели). Соответственно, настройка ширины столбов идёт ещё до отображения всех графических компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:11 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczMaxLichЭто и хочу исправить. Ну, так это и надо исправлять, а не ту херню про getWidth() что вы написали вышел. JTable.setAutoResizeMode() пробовали? Так именно из-за JTable.setAutoResizeMode() и стало такое со столбцами. До этого всё нормально было со столбцами, только ширина была не очень. Насколько я помню, я пытался задавать фиксированную ширину, но без setAutoResizeMode() не было никакого эффекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:24 |
|
||
|
Как получить текущие размеры компоненты в Swing?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Не задавал. Просто кидаю на каждую вкладку панель с таблицей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:26 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2122415]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 175ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...