Как и во всех проблемах, начните с разбивки на управляемые куски.
Объединение различных элементов пользовательского интерфейса в группы «функциональных возможностей» и разделение их на отдельные компоненты - таким образом, вы можете сосредоточиться на индивидуальных требованиях к макету для каждого раздела
Исходя из этого, я бы сосредоточился на разбиении каждой группы на отдельные компоненты и сосредоточился на основных функциях
Так что это довольно просто, я бы использовал GridBagLayout
, потому что это позволило бы мне привязать компоненты к верхнему положению контейнера. Вы также можете использовать VerticalLayout
от SwingX
Итак, существует ряд возможностей, но, поскольку это было бы просто сделать, я бы использовал GridBagLayout
, поскольку это позволило бы мне выделить больше места для двух списков
Немного сложнее, но все же GridBagLayout
, поскольку он позволяет лучше контролировать выделение места для отдельных компонентов
И, GridBagLayout
по всем причинам, указанным выше.
Наконец-то ... * * 1045
Собираем все вместе ...
Я бы, вероятно, начал с размещения зеленой, синей и желтой секций в отдельный контейнер (используя GridBaglayout
, как это ни удивительно, поскольку компоненты позволяют расширять ячейки), а затем объединил бы его с фиолетовой секцией на контейнер с использованием BorderLayout
Я бы порекомендовал вам потратить время на то, чтобы взглянуть на Размещение компонентов в контейнере , попробовать кое-что и посмотреть, что работает, а что нет.