Отправляет email-рассылки с помощью сервиса Sendsay

Изучаем язык Java

  Все выпуски  

Изучаем язык Java


Java для чайников. Урок 41б. Менеджеры расположения компонентов. Продолжение - 3

Предыдущая часть здесь.

А теперь сделаем вот такую программу:

Для этого нужно по вертикали и по горизонтали сгруппировать кнопочки по три:

        layout.setHorizontalGroup(layout.createSequentialGroup()

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn4)

                .addComponent(btn5)

                .addComponent(btn6)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn7)

                .addComponent(btn8)

                .addComponent(btn9)

            )

        );

        

        layout.setVerticalGroup(layout.createSequentialGroup()     

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn1)

                .addComponent(btn4)

                .addComponent(btn7)

            )

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn2)

                .addComponent(btn5)

                .addComponent(btn8)

            )

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn3)

                .addComponent(btn6)

                .addComponent(btn9)

            )

        );

Обратите внимание, что в горизонтальной группе мы кнопки группируем (1,2,3), (4,5,6), (7,8,9) - и это у нас столбцы. А в вертикальной группировке мы добавляем строчки, и они у нас уже будут (1,4,7), (2,5,8), (3,6,9).

Если мы хотим наоборот, то нужно сделать во так:

layout.setHorizontalGroup(layout.createSequentialGroup()

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn1)

                .addComponent(btn4)

                .addComponent(btn7)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn2)

                .addComponent(btn5)

                .addComponent(btn8)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn3)

                .addComponent(btn6)

                .addComponent(btn9)

            )

        );

        

        layout.setVerticalGroup(layout.createSequentialGroup()     

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

            )

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn4)

                .addComponent(btn5)

                .addComponent(btn6)

            )

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn7)

                .addComponent(btn8)

                .addComponent(btn9)

            )

        ); 

 И выглядеть это будет вот так:

А теперь попробуем убрать кнопку 4 из серединной строки и поместить в первую, вот так:

Как мы это сделаем? Во-первых, уберем из описания столбца (1,4,7) и поместим в новый, четвертый столбец:

        layout.setHorizontalGroup(layout.createSequentialGroup()

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn1)            

                        .addComponent(btn7)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn2)

                .addComponent(btn5)

                .addComponent(btn8)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn3)

                .addComponent(btn6)

                .addComponent(btn9)

            )

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn4)

            )

        );

А во-вторых, уберем кнопку "4" из второй строки и поместим в первую:

        layout.setVerticalGroup(layout.createSequentialGroup()     

                  .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

                .addComponent(btn4)

            )

            .addGroup(layout.createParallelGroup(BASELINE)             

                        .addComponent(btn5)

                .addComponent(btn6)

            )

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn7)

                .addComponent(btn8)

                .addComponent(btn9)

            )

        );  

Что еще можно сделать с данным лайоутом? Об этом вы узнаете в следуем уроке. 

 

(С) Шуравин Александр

 

 


В избранное