Использование MigLayout . Он очень прост в использовании и имеет очень маленькую кривую обучения. Он может легко обрабатывать макет, который вы собираетесь. В частности, начните с Краткое руководство по началу работы , а затем Whitepaper для остальной части API)
Особые элементы, на которые нужно смотреть с помощью MigLayout, - это закрепленные элементы (справа и снизу, похоже) и fill
, так как похоже, что вы хотите, чтобы вещи занимали все пространство.
Кроме этого, вам, вероятно, не потребуется намного больше для указания макета.
Например, используя MigLayout и SwingBuilder в фреймворке Griffon , вот как я бы изложил то, что у вас есть:
migLayout(layoutConstraints: 'fill, wrap 2',
columnConstraints: '[grow|]',
rowConstraints: '[grow|]')
panel (constraints: 'spany 2, grow') {
// Main content with the picture go in here
}
list(constraints: 'grow') {
// Top list
}
list(constraints: 'grow') {
// Bottom list
}
panel(constraints: 'grow') {
// Bottom panel
}
panel() {
// Button panel
}
Вероятно, есть много лучших способов сделать это, и я не собрал макет и не запустил его сам, поэтому я не уверен на 100%, что он работает, но он должен послужить хорошей отправной точкой.