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

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

  Все выпуски  

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


Новое на сайте Программирование - это просто! (www.easyprog.ru):

В платном разделе

В бесплатном разделе

Канал на ЯндексДзен:  Фантастика, фэнтази, научпоп, наука, философия, размышления

 

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

Стоит заметить, что обязательно нужно делать как горизонтальное, так и вертикальное размещение:

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(label)

                        .addComponent(textField)

                        .addComponent(findButton))

                .addGroup(layout.createParallelGroup(LEADING)

                .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(BASELINE)

                                .addComponent(caseCheckBox)

                                .addComponent(wrapCheckBox))

                        .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(wholeCheckBox)

                        .addComponent(backCheckBox)))

                .addComponent(cancelButton))

        );

а вот тут у нас идет как бы все наоборот. Мы последовательно размещаем группу из надписи, текстового поля и кнопочки "Find":

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

Попробуем что-нибудь поменять в этом хитром диалоге. Добавим еще одну метку:

public class Find extends JFrame {

    public Find() {

        JLabel label = new JLabel("Find What:");

        JLabel label1 = new JLabel("Это еще одна метка");

        JTextField textField = new JTextField();

...

Вставим ее в горизонтальную часть:

layout.setHorizontalGroup(layout.createSequentialGroup()

                .addComponent(label)

                .addComponent(label1)

                .addGroup(layout.createParallelGroup(LEADING)

                        .addComponent(textField)

                        .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(LEADING)

                                .addComponent(caseCheckBox)

                                .addComponent(wholeCheckBox))

                        .addGroup(layout.createParallelGroup(LEADING)

                        .addComponent(wrapCheckBox)

                        .addComponent(backCheckBox))))

                .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(findButton)

                .addComponent(cancelButton))

         );

Что важно, в вертикальную часть тоже надо добавить метку:

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(label)

                        .addComponent(label1)

                        .addComponent(textField)

                        .addComponent(findButton))

                .addGroup(layout.createParallelGroup(LEADING)

                .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(BASELINE)

                                .addComponent(caseCheckBox)

                                .addComponent(wrapCheckBox))

                        .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(wholeCheckBox)

                        .addComponent(backCheckBox)))

                .addComponent(cancelButton))

        );

И теперь у нас будет выглядеть диалог вот так:

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

Поменяв местами добавление элементов в горизонтальной блоке, мы поменяем местами и на форме (например, метки):

        layout.setHorizontalGroup(layout.createSequentialGroup()

                .addComponent(label1)

                .addComponent(label)

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

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

Мы можем менять последовательность и в вертикальном блоке, например сначала добавить флажки, затем кнопочку "Cancel":

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(label1)              

                        .addComponent(label)                       

                        .addComponent(textField)

                        .addComponent(findButton))

                .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(BASELINE)

                                .addComponent(caseCheckBox)

                                .addComponent(wrapCheckBox))

                        .addGroup(layout.createParallelGroup(BASELINE)

                        .addComponent(wholeCheckBox)

                        .addComponent(backCheckBox)))

                .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(cancelButton))

        );

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

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

  

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


В избранное