Я использую GroupLayout для удобства изменения размера кнопок, я сделал 2 группы кнопок, с иконками (bt3, bt4, bt5, bt6, bt7) и другие без (bt1, bt2). Те, что с иконками, работают правильно, когда на развернутом экране, но другая группа не центрируется.
Обычный кадр: https://imgur.com/kqLtQxE
Развернутый кадр: https://imgur.com/a/mBt52ZM
И вот коды:
GroupLayout groupLayout = new GroupLayout(jan1.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(77)
.addComponent(bt3, GroupLayout.PREFERRED_SIZE, 51, Short.MAX_VALUE)
.addGap(18)
.addComponent(bt4, GroupLayout.PREFERRED_SIZE, 51, Short.MAX_VALUE)
.addGap(18)
.addComponent(bt5, GroupLayout.PREFERRED_SIZE, 51, Short.MAX_VALUE)
.addGap(18)
.addComponent(bt6, GroupLayout.PREFERRED_SIZE, 51, Short.MAX_VALUE)
.addGap(18)
.addComponent(bt7, GroupLayout.PREFERRED_SIZE, 51, Short.MAX_VALUE)
.addGap(77))
.addGroup(groupLayout.createSequentialGroup()
.addGap(120)
.addGroup(groupLayout.createParallelGroup(Alignment.CENTER)
.addComponent(bt1, GroupLayout.PREFERRED_SIZE, 244, 400)
.addComponent(bt2, GroupLayout.PREFERRED_SIZE, 244, 400))
.addGap(120))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.TRAILING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(118)
.addComponent(bt1, GroupLayout.PREFERRED_SIZE, 40, GroupLayout.PREFERRED_SIZE)
.addGap(45)
.addComponent(bt2, GroupLayout.PREFERRED_SIZE, 40, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED, 48, Short.MAX_VALUE)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(bt7, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
.addComponent(bt4, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
.addComponent(bt3, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
.addComponent(bt6, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
.addComponent(bt5, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE))
.addGap(25))
);
Большое дело - ось X, я хочу это централизованно и использовать максимальное значение (то, что на код), но bt1 и bt2, похоже, «остаются в исходном положении», как если бы кадр не был централизован и только увеличивался