Графический интерфейс пользователя. Обзор визуальных компонентов Swing презентация

Содержание

Слайд 2

Контейнеры высшего уровня

JWindow - окно без рамки
JFrame - окно с рамкой
JDialog - диалоговое

окно
JApplet - апплет

Слайд 3

Окно без рамки JWindow

Слайд 4

Окно с рамкой JFrame

Является наследником JWindow
Упрощенное закрытие окна setDefaultCloseOperation()
setUndecorated() - возможность убрать рамку

и элементы управления
Доступные слушатели событий:
WindowListener
WindowFocusListener

Слайд 5

Диалоговое окно JDialog

Может быть модальным и немодальным
Позволяет указать родительское окно
Также имеет метод setDefaultCloseOperation()

для упрощения закрытия
Для удобства имеет перегруженный конструктор

Слайд 6

Менеджеры компоновки

BorderLayout
FlowLayout
GridLayout
GridBagLayout
SpringLayout
BoxLayout

Слайд 7

Паттерн “Стратегия”

Программа должна обеспечивать различные варианты алгоритма
Нужно изменять поведение каждого экземпляра класса
Необходимо изменять

поведение объектов на стадии выполнения
Введение интерфейса позволяет классам-клиентам ничего не знать о классах, реализующих этот интерфейс и инкапсулирующих в себе конкретные алгоритмы

Слайд 8

java.awt.LayoutManager

Учитывает следующие параметры компонентов
Предпочтительный размер
Минимальный размер
Максимальный размер
Выравнивание по осям X и Y
Границы контейнера

Слайд 9

Полярное расположение BorderLayout

Является менеджером по умолчанию для JWindow, JFrame, JDialog
Использование: add(component, область)
Виды областей:
BorderLayout.NORTH
BorderLayout.SOUTH
BorderLayout.WEST
BorderLayout.EAST
BorderLayout.CENTER

Слайд 10

Последовательное расположение FlowLayout

Создает последовательное размещение объектов с указанным выравниванием и заданными между этими

объектами интервалами.
В случае нехватки места переходит на следующую строку
Позволяет задавать расстояния между элементами по вертикали и горизонтали.
Позволяет указать горизонтальное выравнивание компонентов

Слайд 11

Табличное расположение GridLayout

Разделяет контейнер на таблицу с ячейками одинакового размера.
Все компоненты всегда выводятся

на экран, как бы ни было велико или мало доступное пространство.
Объекты располагаются последовательно слева направо.

Слайд 12

java.awt.GridBagLayout

Cоздает гибкое табличное размещение объектов, позволяя размещать один компонент в нескольких ячейках.
GridBagConstraints -

определят параметры размещения отдельных компонент:
gridx и gridy - номер столбца и номер строки для ячейки
gridwidth и gridheight - количество ячеек, занимаемых добавляемым компонентом.
fill - стратегия распределения компоненту свободного пространства (GridBagConstraints.NONE, GridBagConstraints.BOTH, GridBagConstraints.HORIZONTAL, GridBagConstraints.VERTICAL )

Слайд 13

GridBagConstraints

anchor - выравнивание компонента внутри отведенного для него пространства (GridBagConstraints.CENTER, .., GridBagConstraints.SOUTHWEST )
weightx

и weighty - стратегию изменения размеров компонента (значения от 0.0 до 1.0)
ipadx и ipady - позволяют указать, что размеры компонента необходимо увеличить на заданное количество пикселов
insets - позволяет задать для компонента отступы от краев выделенной ему области (класс Insets)

Слайд 14

SpringLayout

С каждым компонентом ассоциируется особый информационный объект Spring, который позволяет задать расстояние (в

пикселах) между парой границ различных компонентов.
Границ у компонента четыре — это его северная, восточная, западная и южная стороны.
Позволяет задавать расстояние и между границами одного и того же компонента
По умолчанию все компоненты имеют предпочтительный размер
SpringLayout тщательно учитывает и два остальных размера, не делая компоненты меньше минимального и больше максимального размеров.
предназначен прежде всего для автоматизированного построения интерфейса

Слайд 15

Блочное расположение BoxLayout

выкладывает компоненты в контейнер блоками: столбиком (по оси Y) или полоской

(по оси X)
каждый отдельный компонент можно выравнивать по центру, по левому или по правому краям, а так же по верху или по низу
Расстояние между компонентами по умолчанию нулевое, но для его задания существуют это распорки (struts), заполнители (glues) и фиксированные области (rigid areas).
Имеется возможность создавать через методы класса Box
public static Box createHorizontalBox()
public static Box createVerticalBox()

Слайд 16

Надписи JLabel

Слайд 17

Рамки

Слайд 18

Рамки (продолжение)

Слайд 19

Фабрика BorderFactory

static Border createBevelBorder(int type)
static CompoundBorder createCompoundBorder()
static Border createEmptyBorder()
static Border createEtchedBorder()
static Border createLineBorder(Color

color)
static TitledBorder createTitledBorder(String title)
static Border createSoftBevelBorder(int type)
static MatteBorder createMatteBorder(int top, int left, int bottom, int right, Color color)

Слайд 20

Элементы управления

Слайд 21

Кнопки JButton

Слайд 23

Элементы управления с двумя состояниями

Выключатели JToggleButton
Группы элементов управления ButtonGroup
Переключатели JRadioButton
Флажки JCheckBox

Слайд 24

Обычные списки JList

позволяют выводить на экран перечень некоторых элементов
использует две модели:
для формирования

списка показываемых элементов (ListModel -> DefaultListModel)
для показа выделенных (ListSelectionModel -> DefaultListSelectionModel)
Позволяет настраивать внешний вид в широких пределах:
установкой свойств
ListCellRenderer (метод getListCellRendererComponent())

Слайд 25

Раскрывающиеся списки JComboBox

служат для выбора одного из множества доступных вариантов
виден только сам выбранный

элемент
Список возможных альтернатив выводится в специальном всплывающем меню, которое после выбора скрывается
допускают редактирование текущего элемента
обладает встроенной возможностью поиска элементов с клавиатуры
требует только одну модель ComboBoxModel

Слайд 26

Диапазоны значений

Ползунки JSIider
Индикаторы процесса JProgressBar
Счетчики JSpinner

Слайд 27

Ползунки JSIider

позволяет плавно изменять выбираемое в некотором диапазоне значение с помощью специального регулятора,
требуется

специальная модель BoundedRangeModel, хранящая информацию об ограниченном наборе данных. Данные в ней хранятся в числовом виде в четырех целых (int) числах.
минимальное значение (свойство с названием minimum),
максимальное значение (maximum),
текущее значение (value)
внутренний диапазон (extent)

Слайд 28

Индикаторы процесса JProgressBar

демонстрируют пользователю, на каком этапе выполнения находится некий процесс.
использует BoundedRangeModel, предназначенную

для хранения ограниченного диапазона чисел.

Слайд 29

Свойства JProgressBar

Слайд 30

Счетчики JSpinner

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

значения может «прокручивать» в любую сторону.
Использует модель SpinnerModel, которая позволяет узнать текущее значение счетчика, следующее и предыдущее значения, сменить текущее значение новым, а также поддерживает списки слушателей ChangeListener, которые оповещаются, когда меняется текущее значение модели.
Позволяет организовать выбор дат с использованием SpinnerDateModel.

Слайд 31

Управление пространством

Панель с вкладками JTabbedPane
Разделяемая панель JSplitPane
Панель прокрутки JScrollPane

Слайд 32

Панель с вкладками JTabbedPane

позволяет выводить на экран вкладки (tabs)
вкладка добавляется при вызове метода

add() или addTab()

Слайд 33

Разделяемая панель JSplitPane

Слайд 34

Панель прокрутки JScrollPane

позволяет наделить компонент (обычно большого размера) возможностью прокрутки
Позволяет задавать политику появления

скроллов:
по вертикали
VERTICAL_SCROLLBAR_AS_NEEDED
VERTICAL_SCROLLBAR_NEVER
VERTICAL_SCROLLBAR_ALWAYS
по горизонтали
HORIZONTAL_SCROLLBAR_AS_NEEDED
HORIZONTAL_SCROLLBAR_NEVER
HORIZONTAL_SCROLLBAR_ALWAYS

Слайд 35

Текстовые компоненты

Текстовые поля
Многострочное поле JTextArea
Компонент JFormattedTextField

Слайд 36

Текстовые поля

Имеет два вида - JTextField и JPasswordField

Слайд 37

Многострочное поле JTextArea

Слайд 38

Форматированный вывод — компонент JFormattedTextField

позволяет выводить данные согласно специальным текстовым форматам и маскам
ограничивает ввод

пользователя, разрешая тому вводить данные только в соответствии с заданным в поле форматом.
Имеет фоматирующий объект, наследующий абстрактный внутренний класс AbstractFonnatter.
Стандартные форматирующие объекты
MaskFormatter
DateFormatter
NumberFormatter

Слайд 39

JTable

Дает возможность с легкостью выводить двухмерную информацию
Позволяет настраивать и сортировать данные
Позволяет управлять заголовками

таблицы
Имеет ряд вспомогательных классов из пакета javax.swing.table
Оперирует данными с помощью модели tableModel

Слайд 40

TableModel

Слайд 41

Литература

K.Arulkumaran, A.Sivayini. Java/J2EE Job Interview Companion
Портянкин И. Swing. Эффективные пользовательские интерфейсы
Java™ Platform, Standard

Edition 7 API Specification

Слайд 42

Домашнее задание

Разработать приложение, которое выводит на экран таблицу с книгами. Количество столбцов таблицы

должно быть не менее 5, например:
1. Название;
2. Автор;
3. Год выпуска;
4. Издательство
5. Обложка (картинка). Приложение должно хранить данные в файле в виде (через разделители): Название%Автор%1999%Издательство%1.jpg. Приложение должно быть разделено визуально на 2 части: в верхней части должна быть таблица, а в нижней поля, через которые осуществляется добавление строки. В приложении должно быть предусмотрено меню (загрузка из файла, сохранение, выход и т.д.).
Имя файла: Графический-интерфейс-пользователя.-Обзор-визуальных-компонентов-Swing.pptx
Количество просмотров: 69
Количество скачиваний: 0