Вопрос

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

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

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top