Используйте GroupLayout для всей панели и пользовательский метод рисования для карты.
Я не думаю, что многие здесь будут рекомендовать GroupLayout, потому что он сложнее, чем другие менеджеры по расположению,Мне это нравится, потому что он дает великолепные масштабируемые результаты, поэтому я потратил время на его понимание.Теперь я почти ничего не использую - особенно для панелей взаимодействия с пользователем с кнопками и текстовыми полями.
Для карты я бы создал пользовательский MapPanel
и перезаписал paintComponent()
.Конечно, вы должны написать свой собственный алгоритм прокрутки, но я думаю, что это небольшая выгода для того, чтобы не иметь дело с полосами прокрутки.Вы можете сделать так, чтобы кто-то мог просто перетащить мышь и переместить карту.Используйте колесо мыши, чтобы увеличить масштаб и сделать интерфейс очень интуитивно понятным.Если вы хотите рисовать полосы прокрутки, вы можете сделать это тоже.
Я построил несколько интерфейсов, используя подобные модели.Я построил несколько карт для игр с использованием этой модели, а также пакет диаграмм финансового рынка.Это очень легко добавить пользовательские функции, чтобы делать некоторые великие вещи, которые было бы кошмаром, чтобы попытаться сделать в JTable
.