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

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



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

Пользовательский интерфейс. GUI с применением AWT Создание элементов пользовательского интерфейса библиотека AWT (Аbstract Window Toolkit) поручала встроенным.
1 Java 13. ЭЛЕМЕНТЫ КОМПОНОВКИ И УПРАВЛЕНИЯ. 2 Элементы управления Компоненты библиотеки Swing не привязаны к конкретной платформе. Классы компонент доступны.
1 Обработка событий Событие – объект специального класса, описывающий изменение состояния объекта источника. Классы для обработки событий находятся в пакете.
Язык программирования Java Дмитриев Андрей Владиславович 2007.
Лекция 2.Основы объектной модели Java 1. Содержание 1.Основы ООП. 2.Понятия «класс» и «объект». 3.Поля и методы класса. Спецификаторы доступа: public,
Список задач Задача Проверка решения Система DCES Клиентская часть Серверная часть Плагин на Java Плагин на php.
1 © Luxoft Training 2013 Модуль 6 Обзор библиотек GUI разработки Введение в Swing Архитектура Swing Контейнеры Swing Компоненты Swing Менеджеры компоновки.
Обработка события в Java. События Стратегия обработки событий в Java 1.1 Прослушиватель событий – это класс, который реализует интерфейс java.awt.event.EventListener,
Java Advanced Интерфейс пользователя Часть 1. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Интерфейс пользователя 1 Содержание 1.Компоненты и контейнеры.
Идентификация типа во время выполнения RTTI. Механизм состоит из нескольких частей: Базовые средства RTTI лежат в основе механизма полиморфизма. При первом.
Windows forms. Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public.
Многопоточные приложения в Java Лекция 8. Многопоточность Многопоточность операционной системы – возможность одновременного выполнения более чем одной.
1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
Встроенные классы в Java Макаревич Л. Г.. Разновидности встроенных классов Вложенные (Nested) классы Внутренние (Inner) классы Локальные классы Анонимные.
Кафедра ЮНЕСКО по НИТ Объектная модель в Java Часть 2. Интерфейсы и внутренние классы, параметры метода.
Введение в GUI. Возможности графических библиотек GUI-библиотеки Java (GUI – для standalone applications или applets) AWT – вызов native-компонентов =>
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Язык программирования Java Дмитриев Андрей Владиславович Май 2007.
1 Графика в Java Краткое введение в GUI (Graphical User Interface)
Транксрипт:

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

Swing и AWT AWT – Abstract Window Toolkit, единственный инструментарий для визуального интерфейса до 1998 года; Swing – часть библиотеки JFC (Java Foundation Classes), особенности: –Кроссплатформенность (нет зависимости от стандартных элементов ОС); –Динамический вид и поведение (Look-and- feel).

Пакеты и классы AWT

Пакеты и классы Swing

Создание окна import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.*; public class SampleWindow{ public static void main( String []args ){ Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); Dimension windowSize = new Dimension( 150, 50 ); JFrame frm = new JFrame( Caption ); frm.setSize( windowSize ); frm.setLocation( d.width/2 - windowSize.width/2, d.height/2 - windowSize.height/2 ); frm.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frm.add( new JLabel("test", SwingConstants.CENTER) ); frm.setVisible( true ); }

Создание диалога import javax.swing.*; public class SampleDlg{ public static void main(String[] args) { JDialog dlg = new JDialog( (JWindow)null, "Main window" ); dlg.setDefaultCloseOperation( JFrame.DISPOSE_ON_EXIT ); dlg.setSize( 200, 200 ); dlg.setVisible( true ); }

Модальные диалоги и стандартные сообщения Варианты конструктора JDialog: JDialog(); JDialog( Window parent ); JDialog( Window parent, String title, ModalityType modalType ); Варианты ModalityType: APPLICATION_MODAL – для блокирования всех остальных окон приложения; DOCUMENT_MODAL – для блокирования текстового ввода для всех окон данного документа; MODELESS – немодальный диалог; TOOLKIT_MODAL – блокирование всех окон, созданных для данного экземпляра Toolkit

Менеджеры компоновки BorderLayout (по умолчанию): JPanel p = frm.getContentPane(); p.setLayout( new BorderLayout() ); //Центральная область: p.add( new JLabel(center text) ); //Нижняя область («юг»): p.add( new JLabel(bottom text), BorderLayout.SOUTH ); Константы BorderLayout: NORTH, SOUTH, EAST, WEST, CENTER

Менеджеры компоновки GridLayout (сетка или таблица с фиксированными ячейками): JPanel p = frm.getContentPane(); p.setLayout( new GridLayout(2,2) ); p.add( new JLabel(1) ); p.add( new JLabel(2) ); p.add( new JLabel(3) ); p.add( new JLabel(4) );

Менеджеры компоновки GridBagLayout: GridBagLayout l = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); p.setLayout( l ); c.gridwidth = 1; c.gridheight = 1; c.weightx = 1.0; c.weighty = 1.0; c.fill = GridBagConstraints.NONE; JLabel l1 = new JLabel(1); JLabel l2 = new JLabel(1); JLabel l3 = new JLabel(1); l.setConstraints( l1, c ); p.add( l1 ); c.gridwidth = GridBagConstraints.REMAINDER; l.setConstraints( l2, c ); p.add( l2 ); l.setConstraints( l3, c ); p.add( l3 );

Менеджеры компоновки GridBagLayout: GridBagLayout l = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); p.setLayout( l ); c.gridwidth = 1; c.gridheight = 1; c.weightx = 1.0; c.weighty = 1.0; c.gridx = 1; c.gridy = 1; c.fill = GridBagConstraints.HORIZONTAL; JLabel l1 = new JLabel(1); c.gridx++; JLabel l2 = new JLabel(1); c.gridx = 1; c.gridy++; c.gridwidth = 2; JLabel l3 = new JLabel(1); l.setConstraints( l1, c ); p.add( l1 ); c.gridwidth = GridBagConstraints.REMAINDER; l.setConstraints( l2, c ); p.add( l2 ); l.setConstraints( l3, c ); p.add( l3 );

Обработка событий import java.awt.event.*; import javax.swing.*; public class SampleFrame extends JFrame implements ActionListener{ JButton m_btnClose = new JButton( Close window ); public SampleFrame(){ super( Sample frame ); m_btnClose.addActionListener( this ); setSize(…); setDefaultCloseOperation(…); getContentPane().add( buttons, BorderLayout.SOUTH ); setVisible( true ); } public void actionPerformed( ActionEvent e ){ if( e.getSource() == m_btnClose ){ dispose(); }

Обработка событий Создание слушателей через анонимные классы: import java.awt.event.*; final JFrame frm = this; JButton btn = new JButton(close); btn.addActionListener( new ActionListener(){ public void actionPerformed( ActionEvent e ){ frm.dispose(); } } );

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