Я работал над созданием этого конкретного макета с использованием GridBagLayout:
![](https://i.stack.imgur.com/nXjdY.png)
Сегодня каким-то образом мне удалось этого добиться, однако я абсолютно не представляю, как.Я понимаю механику сетки, но меня смущает именно переопределение setpreferredsize, а также weightx и weightty.
Например, изменение веса моего кода с 1 на 0 приведет к следующему:
![](https://i.stack.imgur.com/uLjOe.png)
Возврат к весу x 1 и изменение моего веса на 0 вместо этого приведут к следующему:
![](https://i.stack.imgur.com/eKdqY.png)
Наконец, для каждой из моих 3 панелей яиспользуйте следующий код при его создании:
JPanel connectionPanel = new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(100, 100);
}
};
Изменение размеров одной панели с 100 до, скажем, 500 приведет к этому:
![](https://i.stack.imgur.com/BIIqu.png)
Похожее происходитпри изменении высоты.
Все, что я пытаюсь понять, это как работает weightx, weightty и setpreferredsize.
Когда я вызываю getpreferredsize моих панелей, он возвращает ширину и высоту 0!
Если я не использую переопределение, чтобы специально изменить предпочитаемый размер даже один из моих панелей вывод выглядит так:
![](https://i.stack.imgur.com/GYeVI.png)
Может кто-нибудь объяснить, как они связаны?
Я прочитал документы, но ониочень расплывчатоИсследовали часами и до сих пор не понимают.