Java: графический интерфейс пользователя Менеджеры компоновки.

Презентация:



Advertisements
Похожие презентации
Java: графический интерфейс пользователя. Swing и AWT AWT – Abstract Window Toolkit, единственный инструментарий для визуального интерфейса до 1998 года;
Advertisements

1 Java 13. ЭЛЕМЕНТЫ КОМПОНОВКИ И УПРАВЛЕНИЯ. 2 Элементы управления Компоненты библиотеки Swing не привязаны к конкретной платформе. Классы компонент доступны.
Пользовательский интерфейс. GUI с применением AWT Создание элементов пользовательского интерфейса библиотека AWT (Аbstract Window Toolkit) поручала встроенным.
1 Обработка событий Событие – объект специального класса, описывающий изменение состояния объекта источника. Классы для обработки событий находятся в пакете.
1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки.
Список задач Задача Проверка решения Система DCES Клиентская часть Серверная часть Плагин на Java Плагин на php.
Обработка события в Java. События Стратегия обработки событий в Java 1.1 Прослушиватель событий – это класс, который реализует интерфейс java.awt.event.EventListener,
Лекция 2.Основы объектной модели Java 1. Содержание 1.Основы ООП. 2.Понятия «класс» и «объект». 3.Поля и методы класса. Спецификаторы доступа: public,
Java Advanced Интерфейс пользователя Часть 1. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Интерфейс пользователя 1 Содержание 1.Компоненты и контейнеры.
АДМИНИСТРАТИВНАЯ ПАНЕЛЬ СИСТЕМЫ «ОБЩЕСТВЕННЫЙ НАДЗОР» Управление информацией на сайте Общественный надзор.
Идентификация типа во время выполнения RTTI. Механизм состоит из нескольких частей: Базовые средства RTTI лежат в основе механизма полиморфизма. При первом.
Модуль 7 Разработка и создание форм. Общие сведения Формы. Основные понятия. Создание форм с помощью мастера. Использование выражений в формах. Работа.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Инструкция по использованию сайта-регистра. для регистрации Адрес электронной почты Вы можете посмотреть на в разделе «О сайте»
Основные понятия операционной системы Windows. Что такое объект? Любой документ для ОС – объект, любая папка, пустая или содержащая в себе документы или.
1 Контрольное зачетное задание (0, 0)(0, m-1) (n-1, 0)(n-1, m-1) Дано прямоугольное поле, расчерченное на клетки: n клеток в высоту и m клеток в ширину.
Версия для Microsoft Visual C#. Создание проекта. 1.
Основные возможности MS ACCESS. CУБД Access - Представляет из себя программное средство, при помощи которого можно создать многотабличную реляционную.
Встроенные классы в Java Макаревич Л. Г.. Разновидности встроенных классов Вложенные (Nested) классы Внутренние (Inner) классы Локальные классы Анонимные.
Транксрипт:

Java: графический интерфейс пользователя Менеджеры компоновки

BorderLayout FlowLayout BoxLayout GridLayout GroupLayout CardLayout GridBagLayout

BorderLayout JPanel p = new JPanel( new BorderLayout() ); //Создание 5 панелей (west – левая, east – правая, north – верхняя, south – нижняя, center – центральная) JPanel west = new JPanel(); west.setBackground( Color.YELLOW ); JPanel east = new JPanel(); east.setBackground( Color.GREEN ); JPanel north = new JPanel(); north.setBackground( Color.white ); JPanel south = new JPanel(); south.setBackground( Color.RED ); JPanel center = new JPanel( new BorderLayout() ); west.add( new JLabel("West") ); east.add( new JLabel("East") ); north.add( new JLabel("North") ); south.add( new JLabel("South") ); JLabel cwLabel = new JLabel( "Center.West" ); JLabel ceLabel = new JLabel( "Center.East" ); cwLabel.setBorder( BorderFactory.createEtchedBorder() ); ceLabel.setBorder( BorderFactory.createRaisedBevelBorder() ); center.add( cwLabel, BorderLayout.WEST ); center.add( ceLabel, BorderLayout.EAST ); center.add( new JLabel(" center center center", SwingConstants.CENTER) ); p.add( west, BorderLayout.WEST ); p.add( east, BorderLayout.EAST ); p.add( north, BorderLayout.NORTH ); p.add( south, BorderLayout.SOUTH ); p.add( center, BorderLayout.CENTER ); //frame.getContentPane() – любой экземпляр java.awt.Container frame.getContentPane().add( p );

FlowLayout JPanel p = new JPanel( new BorderLayout() ); p.add( new JLabel(" Ошибка при выполнении" + "транзакции: Регистрация" + " Копирование Удаление Выход") ); JPanel buttonPane = new JPanel( new FlowLayout(FlowLayout.RIGHT) ); buttonPane.add( new JButton("Продолжить") ); buttonPane.add( new JButton("Закрыть") ); p.add( buttonPane, BorderLayout.SOUTH ); frame.getContentPane().add( p );

BoxLayout JPanel p = new JPanel(); BoxLayout l1 = new BoxLayout( p, BoxLayout.PAGE_AXIS ); p.setLayout( l1 ); JLabel row1Label = new JLabel("Логин"); JLabel row2Label = new JLabel("Пароль"); row1Label.setPreferredSize( new Dimension(50,15) ); row2Label.setPreferredSize( new Dimension(50,15) ); JPanel row1 = new JPanel(); BoxLayout row1l = new BoxLayout( row1, BoxLayout.LINE_AXIS ); row1.setLayout( row1l ); row1.add( row1Label ); row1.add( m_tfLogin ); JPanel row2 = new JPanel(); BoxLayout row2l = new BoxLayout( row2, BoxLayout.LINE_AXIS ); row2.setLayout( row2l ); row2.add( row2Label ); row2.add( m_tfPasswd ); JPanel btn = new JPanel(); BoxLayout btnL = new BoxLayout( btn, BoxLayout.LINE_AXIS ); btn.setLayout( btnL ); btn.add( m_bOk ); btn.add( m_bCancel ); p.add( row1 ); p.add( row2 ); p.add( btn ); frame.getContentPane().add( p );

GridLayout JPanel p = new JPanel( new GridLayout(3, 2) ); p.add( new JLabel("Логин") ); p.add( m_tfLogin ); p.add( new JLabel("Пароль") ); p.add( m_tfPasswd ); p.add( m_bOk ); p.add( m_bCancel ); frame.getContentPane().add( p );

GroupLayout GroupLayout layout = new GroupLayout( getContentPane() ); getContentPane().setLayout( layout ); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); JLabel row1Label = new JLabel("login"); JLabel row2Label = new JLabel("password");

GroupLayout Горизональная компоновка layout.setHorizontalGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup().addComponent(row1Label).addComponent(row2Label)).addGroup(layout.createParallelGroup().addComponent(m_tfLogin).addComponent(m_tfPasswd).addGroup( layout.createSequentialGroup().addComponent(m_bOk).addComponent(m_bCancel) )));

GroupLayout Вертикальная компоновка layout.setVerticalGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(row1Label).addComponent(m_tfLogin) ).addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(row2Label).addComponent(m_tfPasswd) ).addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(m_bOk).addComponent(m_bCancel) ));

CardLayout

//Инициализация m_layout = new CardLayout(); final Container cnt = getContentPane(); cnt.setLayout( m_layout ); JPanel tablePane = new JPanel( new BorderLayout() ); JPanel editPane = new JPanel( new BorderLayout() ); cnt.add( tablePane, TABLEPANE ); cnt.add( editPane, EDITPANE ); //Переключение закладок JButton editButton = new JButton( Редактировать ); editButton.addActionListener( new ActionListener(){ public void actionPerformed( ActionEvent e ){ m_layout.show( cnt, EDITPANE ); } } ); tablePane.add( editButton, BorderLayout.SOUTH );

GridBagLayout 1. Устанавливаем менеджер компоновки для контейнера: panel.setLayout( layout ) 2. Устанавливаем ограничения для компонента: constraints.gridwidth = …; constraints.weightx = …; … layout.setConstraints( comp, constraints ) 3. Добавляем компонент в контейнер: panel.add( comp )

GridBagLayout //Элементы объявлены как поля класса //JTextField m_tfLogin = new JTextField(); //JTextField m_tfPasswd = new JTextField(); //JTextArea m_taComm = new JTextArea(); JLabel l1 = new JLabel("Логин"); JLabel l2 = new JLabel("Пароль"); JLabel l3 = new JLabel("Комментарий"); GridBagLayout l = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); JPanel p = new JPanel( l ); c.insets = new Insets( 5, 5, 5, 5 ); //Общая настройка ограничений (Constraints) // + настройка для первого компонента c.weightx = 0.1; c.weighty = 0.001; c.fill = c.HORIZONTAL; c.gridwidth = 1; c.gridheight = 1; c.anchor = c.NORTH; //установка ограничений для Логин l.setConstraints( l1, c ); //Добавление Логин p.add( l1 ); //Настройка и установка ограничений для JTextField Логин c.weightx = 1.0; c.gridwidth = c.REMAINDER; l.setConstraints( m_tfLogin, c ); p.add( m_tfLogin ); //Настройка и установка ограничений для Пароль c.weightx = 0.1; l.setConstraints( l2, c ); p.add( l2 ); //Настройка и установка ограничений для JTextField Пароль c.gridwidth = c.REMAINDER; c.weightx = 1.0; l.setConstraints( m_tfPasswd, c ); p.add( m_tfPasswd ); //Настройка ограничений для Комментарий c.gridwidth = 1; c.weighty = 1.0; c.weightx = 0.1; l.setConstraints( l3, c ); p.add( l3 ); //Настройка и установка ограничений для JTextArea комментарий c.gridwidth = c.REMAINDER; c.fill = c.BOTH; c.weightx = 1.0; JScrollPane scrComm = new JScrollPane( m_taComm ); l.setConstraints( scrComm, c ); p.add( scrComm ); getContentPane().add( p );

Сообщения public static void main( String []args ){ int res = JOptionPane.showConfirmDialog( null, "Stop operation?", "Warning", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE ); if( res == JOptionPane.NO_OPTION ) JOptionPane.showMessageDialog( null, "Continue", "Information", JOptionPane.INFORMATION_MESSAGE ); else JOptionPane.showMessageDialog( null, "Operation stopped!", "Information", JOptionPane.ERROR_MESSAGE ); }

Задание Разработать программу для вывода окна, представленного на рисунке: Список – JList Заголовки - JLabel

Задание Добавить к кнопке «Готово» обработчик событий, задача которого проверить, выделен ли хоть один элемент в каждом списке. Элементы выделены - выводить сообщение: В одном или более списках элементы не выделены - вывести сообщение:

Задание Разработать программу для создания главного окна программы: По событию от кнопки «отправить», требуется Отобразить модальное окно диалога с элементом JLabel. Текст для JLabel должен быть подставлен из нижний области JTextArea. Заголовок модального окна должен содержать текст из поля «Тема».