Измените размер JPanel в соответствии с JDialog

У меня есть JDialog, который содержит серию JPanels в CardLayout. Некоторые из этих панелей содержат JTables, размер которого я хотел бы изменить в соответствии с любым изменением размера JDialog. Я не уверен, как этого добиться, и любая помощь будет принята с благодарностью.

В настоящее время таблицы просто сохраняют свой текущий размер и не масштабируются. Я уверен, что это что-то простое, но мне трудно найти точный подход.

Спасибо заранее. Если потребуется, я предоставлю дополнительную информацию.

edit: JDialog используется как мастер, поэтому только одна из панелей отображается одновременно, отсюда и использование CardLayout. В идеале я бы хотел оставить это менеджером по расположению, хотя, если он является источником проблем, то, очевидно, я бы передумал!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
2 096
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете оставить CardLayout, но вам нужно сделать следующее: 1. установите макет вашего JDialog на BorderLayout и добавьте новый JPanel (contentPanel) в JDialog
2. теперь установите этот макет contentPanel как CardLayout
3. при необходимости добавьте остальные панели в макет карты. 4. Также убедитесь, что макеты отключены на каждой из панелей, которые вы добавляете в CardLayout. Я думаю, что по умолчанию JPanel использует FlowLayout, и это не идеально для JTable. Так что вам, возможно, придется поэкспериментировать с макетом панели, содержащей таблицу; попробуйте BoxLayout или BorderLayout для этого.

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