Основные компоненты Размещение компонентов

Материаловедение
Электропроводность твёрдых
диэлектриков
Пределы
Курс лекций по ТОЭ
и типовые задания
Информационные процессы
и технологии
Архитектура персонального компьютера
Операционная система Windows
Microsoft Word работа с документами
Microsoft Access СУБД
Microsoft Excel работа с электронными таблицами
Локальные сети Работа пользователя в сети
Работа в Интернет Электронная почта
Защита компьютерной информации
Алгоритмы и программирование Паскаль
Натуральные и комплексные
числа
Теория информационных
процессов
Эффективная организация обмена информации
Непрерывный или аналоговый сигналы
Дискретизированный или дискретно непрерывные сигналы
Дискретные по уровню или квантованные сигналы
Дискретные по уровню и по времени сигналы
Совокупность технических средств
Количество информации в дискретном сообщении
Энтропия
Свойства энтропии
Энтропия объединения нескольких источников
Условная энтропия и взаимная информация
Дискретные источники сообщений с памятью
Производительность источника дискретных сообщений
Пропускная способность дискретного канала
Задача согласования дискретного источника с дискретным каналом без шума
Кодирование
Теорема Шеннона для канала без шума
Второй способ доказательства прямой теоремы Шеннона
Цифровые сети для
передачи речи и данных
Задача согласования дискретного источника
Теорема Шеннона для дискретного канала с шумом
Методика построения помехоустойчивых кодов
Непрерывные сообщения. Квантование и дискретизация
АИМ - сигнал и его спектр
Математическая модель дискретизированного сигнала
Теорема Котельникова
Оценка ошибок дискретизации
Спектр реального сигнала
Интерполирующий фильтр
Информация в непрерывных сообщениях
Дифференциальная энтропия
Наибольшая дифференциальная энтропия
Энтропия и производительность
Пропускная способность непрерывного канала
Информационный подход
Оценка ошибок квантования
Дифференцирование и
интегральное исчисление
Уязвимость операционных
систем
Узлы компьютера БП
Анализ систем безопасности
Обьектовая концепция Delphi
Встроенные типы данных
Объектно-ориентированное
программирование
Классы-оболочки
графический интерфейс
Основные компоненты
Изображения и звук
Инженерная графика

Графическая библиотека AWT предлагает более двадцати готовых компонентов. Они показаны на рис. 8.2. Наиболее часто используются подклассы класса Component: классы Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Panel, ScrollPane, Window, Dialog, FileDialog, Frame.

  • Класс Component
  • Класс Cursor Основа класса — статические константы, определяющие форму курсора
    • Как создать свой курсор Кроме этих предопределенных курсоров можно задать свою собственную форму курсора. Ее тип носит название CUSTOM_CURSOR. Сформировать свой курсор можно методом
  • Компонент Label это просто строка текста, оформленная как графический компонент для размещения в контейнере. Текст можно поменять только методом доступа setText(string text), но не вводом пользователя с клавиатуры или с помощью мыши.
  • Компонент Checkbox это надпись справа от небольшого квадратика, в котором в некоторых графических системах появляется галочка после щелчка кнопкой мыши — компонент переходит в состояние (state) on.
  • Компонент Choice это раскрывающийся список, один, выбранный, пункт (item) которого виден в поле, а другие появляются при щелчке кнопкой мыши на небольшой кнопке справа от поля компонента.
  • Компонент List это список с полосой прокрутки, в котором можно выделить один или несколько пунктов. Количество видимых на экране пунктов определяется конструктором списка и размером компонента.
  • Компоненты для ввода текста В библиотеке AWT есть два компонента для ввода текста с клавиатуры: TextField, позволяющий ввести только одну строку, и И TextArea, в который можно ввести множество строк.
  • Компонент TextField это поле для ввода одной строки текста. Ширина поля измеряется в колонках (column). Ширина колонки — это средняя ширина символа в шрифте, которым вводится текст. Нажатие клавиши <Enter> заканчивает ввод и служит сигналом к началу обработки введенного текста, т. е. при этом происходит событие ActionEvent.
  • Компонент Scrollbar это полоса прокрутки, но в библиотеке AWT класс Scrollbar используется еще и для организации ползунка (slider). Объект может располагаться горизонтально или вертикально, обычно полосы прокрутки размещают внизу и справа.
    • События Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении значения пользователем происходит событие Adj ustmentEvent.
  • Контейнер Panel это невидимый компонент графического интерфейса, служащий для объединения нескольких других компонентов в один объект типа Panel.
  • Контейнер ScrollPane может содержать только один компонент, но зато такой, который не помещается целиком в окне. Контейнер обеспечивает средства прокрутки для просмотра большого компонента.
  • Контейнер Window это пустое окно, без внутренних элементов: рамки, строки заголовка, строки меню, полос прокрутки. Это просто прямоугольная область на экране.
  • Контейнер Frame это полноценное готовое окно со строкой заголовка, в которую помещены кнопки контекстного меню, сворачивания окна в ярлык и разворачивания во весь экран и кнопка закрытия приложения. Заголовок окна записывается в конструкторе или методом setTitie(string title).
    • События Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении размеров окна, его перемещении или удалении с экрана, а также показа на экране происходит событие windowEvent.
  • Контейнер Dialog это окно обычно фиксированного размера, предназначенное для ответа на сообщения приложения. Оно автоматически регистрируется в оконном менеджере графической оболочки, следовательно, его можно перемещать по экрану, менять его размеры
    • События Кроме Событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении размеров окна, его перемещении или удалении с экрана, а также показа на экране происходит событие windowEvent.
  • Контейнер FileDialog это модальное окно с владельцем типа Frame, содержащее стандартное окно выбора файла операционной системы для открытия (константа LOAD) или сохранения (константа SAVE). Окна операционной системы создаются и помещаются в объект класса FileDialog автоматически.
  • Создание собственных компонентов Создать свой компонент, дополняющий свойства и методы уже существующих компонентов AWT, очень просто — надо лишь образовать свой класс как расширение существующего класса Button, TextFieid или другого класса-компонента.
    • Создание "легкого" компонента "Легкий" компонент, не имеющий своего peer-объекта в графической системе, создается как прямое расширение класса component или Container. При этом необходимо задать те действия, которые в "тяжелых" компонентах выполняет peer-объект.
Размещение компонентов
  • Менеджер FlowLayout В предыдущей главе мы размешали компоненты "вручную", задавая их размеры и положение в контейнере абсолютными координатами в координатной системе контейнера. Для этого мы применяли метод setBounds().
  • Менеджер BorderLayout делит контейнер на пять неравных областей, полностью заполняя каждую область одним компонентом, как показано на рис. 11.2. Области получили географические названия NORTH, SOUTH, WEST, EAST И CENTER.
  • Менеджер GridLayout расставляет компоненты в таблицу с заданным в конструкторе числом строк rows и столбцов columns:
  • Менеджер CardLayout своеобразен — он показывает в контейнере только один, первый (first), компонент. Остальные компоненты лежат под первым в определенном порядке как игральные карты в колоде.
  • Менеджер GridBagLayout расставляет компоненты наиболее гибко, позволяя задавать размеры и положение каждого компонента. Но он оказался очень сложным и применяется редко.
  • Обработка событий В двух предыдущих главах мы написали много программ, создающих интерфейсы, но, собственно, интерфейса, т. е. взаимодействия с пользователем, эти программы не обеспечивают. Можно щелкать по кнопке на экране, она будет "вдавливаться" в плоскость экрана, но больше ничего не будет происходить. Можно ввести текст в поле ввода, но он не станет восприниматься и обрабатываться программой. Все это происходит из-за того, что мы не задали обработку действий пользователя, обработку событий.
  • Событие ActionEvent
  • Обработка действий мыши Двойной щелчок кнопкой мыши можно отследить методом e.getciickcount(), возвращающим количество щелчков. При перемещении мыши возвращается 0.
  • Классы-адаптеры представляют собой пустую реализацию интерфейсов-слушателей, имеющих более одного метода. Их имена составляются из имени события и слова Adapter. Например, для действий с мышью есть два класса-адаптера
  • Обработка действий клавиатуры Последнее событие возникает из-за того, что некоторые символы вводятся нажатием нескольких клавиш, например, заглавные буквы вводятся комбинацией клавиш <Shift>+<буква>. Вспомните еще <Аlt>-ввод в MS Windows. Нажатие функциональных клавиш, например <F1>, не вызывает событие KEY_TYPED.
  • Обработка действий с окном Чаще всего эти события используются для перерисовки окна методом repaint() при изменении его размеров и для остановки приложения при закрытии окна.
  • Событие ComponentEvent Аргумент е методов этого интерфейса предоставляет ссылку на компонент-источник события методом e.getComponent().
  • Событие ContainerEvent Событие FocusEvent Аргумент е предоставляет ссылку на компонент, чье добавление или удаление из контейнера вызвало событие, методом e.getchildo, и ссылку на контейнер — источник события методом e.getcontainer (}. Обычно при наступлении данного события контейнер перемещает свои компоненты.
  • Событие ItemEvent Событие AdjustmentEvenl Это событие возникает при выборе или отказе от выбора элемента в списке List, choice или флажка checkbox и отмечается идентификатором ITEM_STATE_CHANGED.
  • Несколько слушателей одного источника Чаще встречается обратная ситуация — несколько слушателей следят за одним компонентом. В том же примере кнопка ь в ответ на щелчок по ней кнопки мыши совершала еще и собственные действия — она "вдавливалась", а при отпускании кнопки мыши становилась "выпуклой". В классе Button эти действия выполняет peer-объект
  • Диспетчеризация событий Если вам понадобится обработать просто действие мыши, не важно, нажатие это, перемещение или еще что-нибудь, то придется включать эту обработку во все семь методов двух классов-слушателей событий мыши.
  • Создание собственного события Вы можете создать собственное событие и определить источник и условия его возникновения.
  • Создание меню В контейнер типа Frame заложена возможность установки стандартной строки меню (menu bar), располагаемой ниже строки заголовка, как показано на рис. 13.1. Эта строка — объект класса MenuBar.
  • Апплеты До сих пор мы создавали приложения (applications), работающие самостоятельно (standalone) в JVM под управлением графической оболочки операционной системы. Эти приложения имели собственное окно верхнего уровня типа Frame, зарегистрированное в оконном менеджере (window manager) графической оболочки.
    • Передача параметров
    • Параметры тега <applet> Обязательные параметры:
      • code — URL-адрес файла с классом апплета или архивного файла;
      • width и height — ширина и высота апплета в пикселах. 
    • Сведения об окружении апплета Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса апплета.
    • Изображение и звук Изображение в Java — это объект класса image, представляющий прямоугольный массив пикселов. Его могут показать на экране логические методы drawimageo класса Graphics.
      • Слежение за процессом загрузки Если вы хотя бы раз видели, как изображение загружается из Internet, то заметили, что оно появляется на экране по частям по мере загрузки. Это происходит в том случае, когда системное свойство awt.image. incrementalDraw имеет значение true.
        • Класс MediaTracker Сначала конструктором MediaTracker (Component comp) создается объект класса для указанного аргументом компонента. Аргумент конструктора чаще всего this.
    • Защита от апплета Браузер может вообще отказаться от загрузки апплетов. В Netscape Communicator это делается с помощью флажка Enable Java в окне, вызываемом командой Edit | Preferences | Advanced, в Internet Explorer — в окне после выбора команды Tools | Internet Options | Security

    Встроенные типы данных, операции над ними

    Объектно-ориентированное программирование в Java

    Классы-оболочки Классы-коллекции

    Классы-утилиты графический интерфейс

    Изображения и звук Обработка исключительных ситуаций

  • Информатика Помехоустойчивые коды и их основные параметры Цифровые сети для передачи речи и данных