Как централизовать кнопки GroupLayout JAVA? - PullRequest
0 голосов
/ 08 февраля 2020

Я использую 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, похоже, «остаются в исходном положении», как если бы кадр не был централизован и только увеличивался

...