- События и слушатели в Java
- Как добавить пакет java.awt.image в Android
- Руководство по Java AWT
- Что такое AWT в Java?
- Особенности AWT в Java
- AWT UI Аспекты
- Иерархия
- AWT Компоненты
- 1. Контейнеры
- Типы Контейнеров
- 2. Кнопка
- 3. Текстовое поле
- 4. Метка
- 5. Холст
- 6. Выбор
- 7. Полоса прокрутки
- 8. Список
- 9. CheckBox
- Разработка калькулятора с помощью Java AWT
События и слушатели в Java
Обработка любого события (нажатие кнопки, щелчок мышью и др.) состоит в связывании события с методом, его обрабатывающим. Принцип обработки событий, начиная с Java 2, базируется на модели делегирования событий. В этой модели имеется блок прослушивания события (EventListener), который ждет поступления события определенного типа от источника, после чего обрабатывает его и возвращает управление. Источник – это объект, который генерирует событие, если изменяется его внутреннее состояние, например, изменился размер, изменилось значение поля, произведен щелчок мыши по форме или выбор значения из списка. После генерации объект-событие пересылается для обработки зарегистрированному в источнике блоку прослушивания как параметр его методов – обработчиков событий.
Блоки прослушивания Listener представляют собой объекты классов, реализующих интерфейсы прослушивания событий, определенных в пакете java.awt.event. Соответствующие методы, объявленные в используемых интерфейсах, необходимо явно реализовать при создании собственных классов прослушивания. Эти методы и являются обработчиками события. Передаваемый источником блоку прослушивания объект-событие является аргументом обработчика события. Объект класса – блока прослушивания события необходимо зарегистрировать в источнике методом
После этого объект-прослушиватель (Listener) будет реагировать именно на данное событие и вызывать метод «обработчик события». Такая логика обработки событий позволяет легко отделить интерфейсную часть приложения от функциональной, что считается необходимым при проектировании современных приложений. Удалить слушателя определенного события можно с помощью методаremoveСобытиеListener().
Источником событий могут являться элементы управления: кнопки (JButton,JCheckbox, JRadioButton), списки, кнопки-меню. События могут генерироваться фреймами и апплетами, как mouse- и key-события. События генерируются окнами при развертке, сворачивании, выходе из окна. Каждый класс-источник определяет один или несколько методов addСобытиеListener() или наследует эти методы
Когда событие происходит, все зарегистрированные блоки прослушивания уведомляются и принимают копию объекта события. Таким образом источник вызывает метод-обработчик события, определенный в классе, являющемся блоком прослушивания, и передает методу объект события в качестве параметра. В качестве блоков прослушивания на практике используются внутренние классы. В этом случае в методе, регистрирующем блок прослушивания в качестве параметра, используется объект этого внутреннего класса.
Каждый интерфейс, включаемый в блок прослушивания, наследуется от интерфейса EventListener и предназначен для обработки определенного типа событий. При этом он содержит один или несколько методов, которые всегда принимают объект события в качестве единственного параметра и вызываются в определенных ситуациях. В таблице приведены некоторые интерфейсы и их методы, которые должны быть реализованы в классе прослушивания событий, реализующем соответствующий интерфейс:
Интерфейсы | Обработчики события |
ActionListener | actionPerformed(ActionEvent e) |
AdjustmentListener | adjustmentValueChanged(AdjustmentEvent e) |
ComponentListener | componentResized(ComponentEvent e) componentHidden(ComponentEvent e) |
ContainerListener | componentAdded(ContainerEvent e)componentRemoved( ContainerEvent e) |
FocusListener | focusGained(FocusEvent e)focusLost(FocusEvent e) |
ItemListener | itemStateChanged(ItemEvent e) |
KeyListener | keyPressed(KeyEvent e)keyReleased(KeyEvent e) keyTyped(KeyEvent e) |
MouseListener | mouseClicked(MouseEvent e) mousePressed(MouseEvent e) mouseExited(MouseEvent e) |
MouseMotionListener | mouseDragged(MouseEvent e)mouseMoved(MouseEvent e) |
TextListener | textValueChanged(TextEvent e) |
WindowListener | windowOpened(WindowEvent e)windowClosing(WindowEvent e) windowActivated(WindowEvent e) |
Событие, которое генерируется в случае возникновения определенной ситуации и затем передается зарегистрированному блоку прослушивания для обработки, – это объект класса событий. В корне иерархии классов событий находится суперклассEventObject из пакета java.util. Этот класс содержит два метода: getSource(), возвращающий источник событий, и toString(), возвращающий строчный эквивалент события. Абстрактный класс AWTEvent из пакета java.awt является суперклассом всех AWT-событий, связанных с компонентами. Метод getID() определяет тип события, возникающего вследствие действий пользователя в визуальном приложении. Ниже приведены некоторые из классов событий, производных от AWTEvent, и расположенные в пакете java.awt.event:
ActionEvent – генерируется: при нажатии кнопки; двойном щелчке клавишей мыши по элементам списка; при выборе пункта меню;
AdjustmentEvent – генерируется при изменении полосы прокрутки;
ComponentEvent – генерируется, если компонент скрыт, перемещен, изменен в размере или становится видимым;
FocusEvent – генерируется, если компонент получает или теряет фокус ввода;
TextEvent – генерируется при изменении текстового поля;
ItemEvent – генерируется при выборе элемента из списка.
Класс InputEvent является абстрактным суперклассом событий ввода (для клавиатуры или мыши). События ввода с клавиатуры обрабатывает класс KeyEvent, события мыши – MouseEvent.
Чтобы реализовать методы-обработчики событий, связанных с клавиатурой, необходимо определить три метода, объявленные в интерфейсе KeyListener. При нажатии клавиши генерируется событие со значением KEY_PRESSED. Это приводит к запросу обработчика событий keyPressed(). Когда клавиша отпускается, генерируется событие со значением KEY_RELEASED и выполняется обработчик keyReleased(). Если нажатием клавиши сгенерирован символ, то посылается уведомление о событии со значением KEY_TYPED и вызывается обработчик keyTyped().
Для регистрации события приложение-источник из своего объекта должно вызвать метод addКеуListener(KeyListener el), регистрирующий блок прослушивания этого события. Здесь el – ссылка на блок прослушивания события.
Источник
Как добавить пакет java.awt.image в Android
У меня есть внешняя библиотека, которая опирается на пакет java.awt.Image . Однако в библиотеке Android его нет. Кто-нибудь знает, как добавить его в Android? Благодаря!
Классы Java AWT содержат собственный код, поэтому, если кто-то не переносит этот собственный код на Android, вам не повезло. И они не будут его переносить, потому что, как было указано выше, Android имеет свои собственные графические библиотеки ( android.graphics ).
Этот ответ заключается в том, чтобы оправдать ответ Hitesh после просмотра голосов (что вводит в заблуждение). Если я ошибаюсь, пожалуйста, поправьте меня.
Ну, я также был энтузиастом в использовании нескольких основных концепций Java, таких как Swings и AWT-библиотеки в Android.
Недавно я хотел использовать класс java.awt.Color потому что он намного лучше, чем android.graphics.Color . Итак, сделайте небольшое исследование, прочитав несколько потоков и заключив: «Нет, мы не можем импортировать». Увидев ответ Hitesh, я думал, что не смог провести исследование и нашел очень легкое решение для своей проблемы. Затем выполните шаги для образца и запустите мой код. Увы.
NoClassDefFoundError исключение NoClassDefFoundError .
Еще раз сделал небольшое исследование для заключения Джеффри (принятого) ответа. Я нашел здесь заключение. Комментарий выше метода loadLibraries() объясняет все. Этот метод был вызван в классе Color (строка 279).
Пакет AWT не поддерживается в Android, вам нужно изменить свою реализацию, чтобы использовать классы Android.
Смотрите похожие вопросы:
Портирование графического кода AWT на Android
Как добавить пакет изображений java AWT в Android
Источник
Руководство по Java AWT
Если мы говорим о программировании GUI, Java предоставляет богатый набор библиотек для разработки высокоинтерактивных графических интерфейсов, заключенных в AWT API. В этом уроке по Java AWT я кратко ознакомлю вас с его компонентами.
Ниже приведены темы, рассматриваемые в этом руководстве:
- Что такое Java AWT?
- Особенности
- Аспекты
- Иерархия
- Компоненты
- Разработка калькулятора с помощью Java AWT
Что такое AWT в Java?
Abstract Window Toolkit (AWT) – это инструментарий классов в Java, который помогает программисту разрабатывать компоненты графического и графического интерфейса пользователя. Он является частью JFC (Java Foundation Classes), разработанной Sun Microsystems.
AWT API в Java в основном состоит из полного набора классов и методов, которые необходимы для упрощенного создания и управления графическим интерфейсом пользователя (GUI). Он был разработан для предоставления общего набора инструментов для проектирования кроссплатформенных графических интерфейсов.
Одной из важных особенностей AWT является то, что он зависит от платформы. Это означает, что инструменты AWT используют нативные наборы инструментов платформ, которые они внедряют.
Этот подход помогает сохранить внешний вид каждой платформы. Но, как уже говорилось, все идет с ценой, у этого подхода есть существенный недостаток. При выполнении на разных платформах из-за зависимости платформы она будет выглядеть по-разному на каждой платформе. Это затрудняет согласованность и эстетику приложения.
Особенности AWT в Java
- AWT – это набор компонентов собственного интерфейса пользователя.
- Он основан на надежной модели обработки событий
- Он предоставляет графические и графические инструменты, такие как формы, цвета и классы шрифтов.
- AWT также использует менеджеры по расположению, которые помогают в увеличении гибкости расположения окон
- Классы передачи данных также являются частью AWT, которая помогает вырезать и вставлять через родной буфер обмена платформы
- Поддерживает широкий спектр библиотек, необходимых для создания графики для игровых продуктов, банковских услуг, образовательных целей и т. д.
AWT UI Аспекты
Любой пользовательский интерфейс будет состоять из трех объектов:
- Элементы пользовательского интерфейса: они относятся к основным визуальным элементам, которые видны пользователю и используются для взаимодействия с приложением. AWT в Java предоставляет полный список широко используемых и распространенных элементов.
- Макеты: они определяют, как элементы пользовательского интерфейса будут организованы на экране, и обеспечивают окончательный внешний вид графического интерфейса.
- Поведение: они определяют события, которые должны происходить, когда пользователь взаимодействует с элементами пользовательского интерфейса.
Иерархия
Ниже я показал общее описание класса java.awt.Component:
AWT Компоненты
1. Контейнеры
Контейнер в Java AWT – это компонент, который используется для хранения других компонентов, таких как текстовые поля, кнопки и т. д. Он является подклассом java.awt.Component и отвечает за отслеживание добавляемых компонентов. AWT в Java предоставляет четыре типа контейнеров.
Типы Контейнеров
2. Кнопка
Класс java.awt.Button используется для создания помеченной кнопки. Компонент графического интерфейса, который запускает определенный запрограммированный при нажатии на него. Класс Button имеет два конструктора:
Несколько методов, предоставляемых этим классом, перечислены ниже:
3. Текстовое поле
Класс java.awt.TextField создает однострочное текстовое поле для ввода текста пользователями. Класс TextField имеет три конструктора:
Вот несколько методов, предоставляемых классом TextField:
4. Метка
Класс java.awt.Label предоставляет текстовую строку с описанием, видимую в графическом интерфейсе. Объект метки AWT – это компонент для размещения текста в контейнере. Класс Label имеет три конструктора:
Этот класс также предоставляет 3 константы:
Ниже я перечислил открытые методы, предоставляемые этим классом:
5. Холст
Класс Canvas представляет прямоугольную область, в которой вы можете рисовать в приложении или получать входные данные, созданные пользователем.
6. Выбор
Класс выбора используется для представления всплывающего меню выбора. Выбранный вариант отображается в верхней части данного меню.
7. Полоса прокрутки
Объект класса Scrollbar используется для добавления горизонтальной и вертикальной полосы прокрутки в GUI. Это позволяет пользователю видеть невидимое количество строк и столбцов.
8. Список
Объект класса List представляет собой список текстовых элементов. Используя класс List, пользователь может выбрать либо один элемент, либо несколько элементов.
9. CheckBox
Флажок представляет собой класс графического компонента, который используется для создания флажка. У него есть два варианта состояния; правда и ложь. В любой момент времени он может иметь любой из двух.
Разработка калькулятора с помощью Java AWT
Здесь я покажу вам, как создать калькулятор с помощью AWT, где вы сможете выполнять основные математические операции. Ниже приведен скриншот того, как будет выглядеть ваш калькулятор.
Теперь, чтобы построить это, вам нужно ввести следующий код:
Как вы могли заметить, здесь мы использовали только функциональные возможности. Вы всегда можете добавить больше функций в свое приложение и создать полноценный калькулятор.
Источник