Вы не устанавливаете gridx
и gridy
из своих GridBagConstraint
, поэтому они, вероятно, не будут отображаться там, где вы хотите.
Я бы предложил следовать @ Совет Эндрю Томпсона и go для BorderLayout
с вашей главной панелью в положении BorderLayout.CENTER
и вашими кнопками в отдельном JPanel
со значением по умолчанию FlowLayout
, которое вы поместите в BorderLayout.SOUTH
position.
Если вы хотите придерживаться GridBagLayout
:
- Основная панель:
gridx=0
gridy=0
gridwidth=2
weightx=1
weighty=1
- Левая кнопка:
gridx=0
gridy=1
- Правая кнопка:
gridx=1
gridy=1
Я не публикую код, потому что вы узнаете намного больше, если ты все сам попробуешь.