Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемamse.ru
1 Java Advanced Интерфейс пользователя Часть 3
2 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Содержание 1.Паттерн модель-вид-контроллер и Swing 2.Простые модели 3.Списки 4.Таблицы 5.Текстовые компоненты 6.Заключение
3 Паттерн модель-вид- контроллер и Swing Часть 1
4 4Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Паттерн модель-вид-контроллер Модель Хранит данные Вид Отображает данные Контроллер Обеспечивает взаимодействие вида и модели
5 5Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель Swing Вид и контроллер совмещены в компоненте Компонента устанавливает слушателя модели
6 6Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Типы моделей GUI-модели Определяют текущий компонента Интерфейс ListSelectionModel Модели данных Хранят данные Интерфейс ListModel
7 7Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Типы событий Lightweight Сообщают о факте изменения Класс ChangeEvent Stateful Сообщают что и как изменилось Класс ListDataEvent
8 Простые модели Часть 2
9 9Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель кнопки Интерфейс ButtonModel Свойства actionCommand – команда mnemonic – мнемоника group – группа кнопок armed – сработает при отпускании pressed – нажата rollover – курсор над кнопкой enabled – разрешена selected – выбрана
10 10Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Реализации моделей кнопки Классы DefaultButtonModel – модель кнопки по умолчанию JToggleButton.ToggleButtonModel – модель кнопки-переключателя
11 11Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель-диапазон Интерфейс BoundedRangeModel Свойства maximum – максимальное значение minimum – минимальное значение value – текущее значение extent – видимая часть valueIsAdjusting – меняется ли значение Реализации Класс DefaultBoundedRangeModel
12 12Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Использование модели-диапазона Компоненты JScrollBar – полоса прокрутки JProgressBar –индикатор прогресса JSlider – бегунок
13 Списки Часть 3
14 14Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Списки Класс JList Модели ListModel – модель элементов списка ListSelectionModel – модель выбора элементов События ListSelectionEvent – изменились выбранные элементы
15 15Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель списка Интерфейс ListModel Свойства size – количество элементов elementAt(index) – элемент по номеру Событие ListDataEvent
16 16Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Порождение событий Класс AbstractListModel Методы Должны вызываться после изменения fireContentChanged(source, from, to) – известить об изменении fireIntervalAdded(source, from, to) – известить о добавлении fireIntervalRemoved(source, from, to) – известить об удалении
17 17Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель списка по умолчанию Класс DefaultListModel Похожа на реализацию списка Методы add(index, object) / addElement(object) – добавление элемента get(index) / elementAt(index) – получение элемента removeElement(object) / removeElementAt(index) – удаление элемента set(index, object) – установка элемента …
18 18Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Отображение элементов списка Интерфейс ListCellRenderer Метод getListCellRendererComponent( JList list, Object value, int index, boolean sSelected, boolean cellHasFocus) – возвращает компоненту для отрисовки JList.setCellRender(renderer) – установка Класс DefaultListCellRenderer
19 19Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Принцип работы При отрисовке элемента списка Берется соответствующая компонента Рисуется в том месте, в котором находится элемент списка Выбрасывается
20 20Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель выбора элементов Обычно используется стандартная Свойства JList selectionMode – режим выбора Режимы SINGLE_SELECTION – одиночный элемент SINGLE_INTERVAL_SELECTION – непрерывный интервал MULTIPLE_INTERVAL_SELECTION – несколько интервалов
21 21Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Выбранные значения Свойства selectedIndex – индекс первого выбранного элемента selectedValue – первый выбранный элемент selectedIndices – индексы выбранных элементы selectedValues – значения выбранных элементов
22 22Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Выпадающие списки Класс JComboBox Модели ComboBoxModel extends ListModel MutableComboBoxModel extends ComboBoxModel Свойства модели selectedItem – выбранный элемент Реализации модели DefaultComboBoxModel – модель по умолчанию
23 Таблицы Часть 4
24 24Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Таблицы Класс JTable Модели TableModel – модель данных ColumnModel – модель столбцов
25 25Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель данных Интерфейс TableModel Методы getColumnCount() – количество столбцов getRowCount() – количество строк getValueAt(row, col) – получить значение setValueAt(row, col) – записать значение isCellEditable(row, col) – можно ли изменять значение getColumnName(col) – название столбца Событие TableModelEvent
26 26Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Порождение событий Класс AbstractTableModel Методы fireTableCellUpdated(row, col) – известить об изменении ячейки fireTableRowsUpdated(Inserted, Deleted)(from, to) – известить о изменении/добавлении/удалении сточек fireTableDataChanged() – известить об изменении данных fireTableStructureChanged() – известить об изменении столбцов
27 27Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель таблицы по умолчанию Класс DefaultTableModel Позволяет Добавлять/убирать/перемещать строки Добавлять/убирать/перемещать столбцы Оперировать заголовками столбцов
28 28Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Модель столбцов Класс TableColumnModel Позволяет переставлять столбцы Хранит набор TableColumn Для каждого столбца хранит Заголовок Cell renderer Header renderer
29 Текстовые компоненты Часть 5
30 30Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Классы текстовых компонет JTextComponen t Базовый класс JTextField JPasswordField JTextAreaJEditorPane JTextPane Однострочные Многострочный без форматирования Многострочные с форматированием
31 31Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Структура текстовой компоненты Модель Интерфейс Document Вид Класс View Контроллер Класс EditorKit
32 32Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Виды документов AbstractDocument Базовый класс PlainDocument Без форматирования DefaultStyledDocument С форматированием HTMLDocument HTML-документ
33 33Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Документ как текст Документ состоит из символов Смещение – расстояние от начала документа Диапазон – текст между двумя смещениями
34 34Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Местоположения Отслеживает местоположение текста в документе Интерфейс Position Методы getOffset() – смещение Document.createPositio n(offset) – создание местоположения
35 35Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Структура элементов Документ состоит из элементов Элементы состоят из элементов
36 36Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Элементы Интерфейс Element Методы getName() – имя элемента getStartOffset() – смещение начала getEndOffset() – смещение конца getParentElement() – подительский элемент getElementCount() – количество детей getElement(index) – вложенный элемент getElementIndex(offset) – номер ребенка, содержащего смещение getAttributes() – атрибуты элемента
37 37Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Атрибуты элемента Интерфейс AttributeSet Методы getAttributeCount() – количество атрибутов getAttribute(key) – получить атрибут isDefined(key) – определен ли атрибут containsAttribute(key, value) – имеет ли атрибут указанное значение
38 38Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Пример: полужирный текст Является ли текст со смещением offset полужирным // Получение корневого элемента текста Element element = document.getDefaultRootElement(); int index; while ((index = element.getElementIndex(offset)) >= 0) { element = element.getElement(index); } AttributeSet attributes = element.getAttributes(); // Получение результата return attributes.containsAttribute(StyleConstants.Bold, Boolean.TRUE);
39 39Georgiy KorneevJava Advanced / Интерфейс пользователя 3 События документа Класс DocumentEvent Подсобытия changedUpdate – изменили текст insertUpdate – вставили текст removeUpdate – удалили текст Методы getOffset() – смещение изменения getLength() – длина изменения getDocument() – изменившийся документ getChange(Element) – информация об изменении структуры документа
40 40Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Вид Класс JTextComponent Состав Курсор и выделение Подсвечивание текста Ограничитель перемещения курсора
41 41Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Операции с видом Методы JTextComponent cut() / copy() / paste() – операции с выделением getSelectedText() – выделенный текст … Свойства JTextComponent editable – возможность редактирования selectionStart(End) – выделение document – редактируемый документ editorKit – используемый контроллер caret – используемые курсор и выделение …
42 42Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Курсор и выделение Класс Caret Событие CaretEvent Методы getDot() – смещение курсора getMark() – смещение начала выделения moveDot() – переместить курсор moveMark() – переместить начало выделения
43 43Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Контроллер Класс EditorKit Методы read(…, document, offset, length) – прочитать с диска write(…, document, offset, length) – записать на диск getActions() – возможные действия getContentType() – MIME-тип документа …
44 44Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Виды контроллеров EditorKit Базовый класс DefaultEditorKit По умолчанию StyledEditorKit Cо стилями HTMLEditorKit Редактирование HTML RTFEditorKit Редактирование RTF
45 45Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Элементы управления Возможные действия с документами Класс DefaultEditorKit.CopyAction Класс StyledEditorKit.FontSizeAction … Названия действий по умолчанию forwardAction – на смивол вперед beginLineAction – в начало строки endLineAction – в конец строки …
46 Заключение Часть 6
47 47Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Ссылки Creating a GUI with JFC/Swing (Tutorial) // Java Foundation Classes // Swing Connection //
48 48 СПбГУ ИТМО Georgiy KorneevJava Advanced / Интерфейс пользователя 3 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.