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

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

  Все выпуски  

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


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

Продолжим изучение лайоута GroupLayout. Предположим, у нас есть девять кнопок. Расположим их сначала просто горизонтально в ряд:

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

import javax.swing.*;

import static javax.swing.GroupLayout.Alignment.*;

 

public class Demo extends JFrame {

    public Demo() {

        

        GroupLayout layout = new GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setAutoCreateGaps(true);

        layout.setAutoCreateContainerGaps(true);

       

        JButton btn1 = new JButton("Кнопка 1");

        JButton btn2 = new JButton("Кнопка 2");

        JButton btn3 = new JButton("Кнопка 3");

        JButton btn4 = new JButton("Кнопка 4");

        JButton btn5 = new JButton("Кнопка 5");

        JButton btn6 = new JButton("Кнопка 6");

        JButton btn7 = new JButton("Кнопка 7");

        JButton btn8 = new JButton("Кнопка 8");

        JButton btn9 = new JButton("Кнопка 9");

 

        layout.setHorizontalGroup(layout.createSequentialGroup()

            .addComponent(btn1)

            .addComponent(btn2)

            .addComponent(btn3)

            .addComponent(btn4)

            .addComponent(btn5)

            .addComponent(btn6)

            .addComponent(btn7)

            .addComponent(btn8)

            .addComponent(btn9)

        );

        

        

        layout.setVerticalGroup(layout.createSequentialGroup()     

            .addGroup(layout.createParallelGroup(BASELINE)

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

                .addComponent(btn4)

                .addComponent(btn5)

                .addComponent(btn6)

                .addComponent(btn7)

                .addComponent(btn8)

                .addComponent(btn9)

                )

        );

        

        setTitle("Демо программа");

        pack();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }

 

    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {

                    UIManager.setLookAndFeel(

                            "javax.swing.plaf.metal.MetalLookAndFeel");

                } catch (Exception ex) {

                    ex.printStackTrace();

                }

                new Demo().setVisible(true);

            }

        });

    }

}

Что мы сделали в данном примере? Просто затолкали их как есть в горизонтальную группу, а в вертикальную добавили их сгруппированными. 

Можно сделать наоборот, сгруппировать горизонтально, но как есть вставить вертикально:

        layout.setHorizontalGroup(layout.createSequentialGroup()

            .addGroup(layout.createParallelGroup(LEADING)

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

                .addComponent(btn4)

                .addComponent(btn5)

                .addComponent(btn6)

                .addComponent(btn7)

                .addComponent(btn8)

                .addComponent(btn9)

            )

        );

        

        

        layout.setVerticalGroup(layout.createSequentialGroup()     

            .addComponent(btn1)

            .addComponent(btn2)

            .addComponent(btn3)

            .addComponent(btn4)

            .addComponent(btn5)

            .addComponent(btn6)

            .addComponent(btn7)

            .addComponent(btn8)

            .addComponent(btn9)

        );

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

 

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

 

 


В избранное