Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Java для чайников. arrow ava для чайников. Урок 40. Менеджеры расположения компонентов. Продолжение - 2
05.04.2020 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
ava для чайников. Урок 40. Менеджеры расположения компонентов. Продолжение - 2 Печать E-mail
Автор megabax   
21.02.2020 г.
В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

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

На прошлом уроке мы разобрали такие менеджеры расположения, как BoxLayout, CardLayoutDemo и GroupLayout. Последний из них довольно интересный, и сейчас мы попробуем использовать его для написания калькулятора.  Для начала сделаем небольшую заготовочку:

import javax.swing.*;

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

 

public class CalcDemo extends JFrame {

    public CalcDemo() {

        JLabel label = new JLabel("Индикатор:");

        JTextField textField = new JTextField();

        

        GroupLayout layout = new GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setAutoCreateGaps(true);

        layout.setAutoCreateContainerGaps(true);

 

        layout.setHorizontalGroup(layout.createSequentialGroup()

                .addComponent(label)

                .addComponent(textField)

        );

        

        

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)             

                        .addComponent(label)                       

                        .addComponent(textField))

        );

        

        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 CalcDemo().setVisible(true);

            }

        });

    }

}

 Результатом работы данной программы будет вот такое окно:

Его, правда, можно немного расширить:

Добавим три кнопочки:

import javax.swing.*;

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

 

public class CalcDemo extends JFrame {

    public CalcDemo() {

        JLabel label = new JLabel("Индикатор:");

        JTextField textField = new JTextField();

        

        GroupLayout layout = new GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setAutoCreateGaps(true);

        layout.setAutoCreateContainerGaps(true);

       

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

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

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

 

        layout.setHorizontalGroup(layout.createSequentialGroup()

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

                .addComponent(label)

                .addComponent(textField)               

        );

        

        

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)             

                        .addComponent(label)                       

                        .addComponent(textField))

                .addComponent(btn1)

                .addComponent(btn2)

                .addComponent(btn3)

        );

        

        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 CalcDemo().setVisible(true);

            }

        });

    }

}

Выглядит как-то не очень:

Объединим кнопочки в группу:

        layout.setVerticalGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(BASELINE)             

                                .addComponent(label)                       

                                        .addComponent(textField))

                .addGroup(layout.createParallelGroup(BASELINE)

                    .addComponent(btn1)

                    .addComponent(btn2)

                    .addComponent(btn3))

        );

Уже лучше, но все равно  не красиво:

 А чтобы сделать красиво, мы изучим этот лайоут более детально, но уже на следующем уроке.

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

 

 

 
« След.   Пред. »
 
© 2020 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги