Изменить размер JPanel в соответствии с JDialog - PullRequest
2 голосов
/ 22 октября 2008

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

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

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

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

1 Ответ

1 голос
/ 22 октября 2008

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

...