Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Обработка событий⇐ ПредыдущаяСтр 17 из 17
Используется модель делегирования событий. Участвует 3 участника: 1. event source - источник 2. event object – событие 3. event listener - слушатель
Источник генерирует событие и направляет его слушателям. Слушатель ожидает событие и его обрабатывает.
Событие – объект. Суперкласс- java.util.EventOblect. Полезный метод- object.getSource(). Информирует об источнике события.
Для событий AWT(Swing): cобытия -объекты класса java.awt.AWTEvent. В объекте события хранится: - ссылка на объект-источник события; - дополнительная информация (например, координаты мышки).
Источник – объект, который генерирует событие. Он отправляет его всем зарегистрированным слушателям. Регистрация производится методом: addХxxListener (XxxListener el) Xxx – тип события.
public void addActionListener () - для JButton addKeyListener () – для клавиатуры addMouseMotionListener () – для перемещения мыши
public void removeXxxListener(XxxListener el) – для отмены регистрации
Эти методы предоставляются источниками событий (т.е. источнтки должны иметь эти методы)
Слушатель событий: 1) должен быть зарегистрирован в объекте – источнике события. 2) должен реализовывать метод для обработки событий (обработчик). Т.е. реализовывать нужный интерфейс.
………implements ActionListener() {….
public actionPerformed (ActionEven ev){…..} ……….//Обработчик события }
Все методы обработки вызываются из одного потока обработки событий (Т.е. по очереди). Поэтому, метод-обработчик. должен работать быстро, иначе не будет реакции на другие события. Для длительной операции нужно создавать отдельный поток. Такая организация программ называется CallBack (обратный вызов). Реализован принцип Голливуда-«Не звоните нам, мы Вам сами перезвоним».(Регистрация обработчика-оставили № телефона.Он записался в объекте-источнике события. Произошло событие-объект-источник делает звонок по этому №).
Регистрация обработчиков.
Контейнер – обработчик события (самообработка событий), обработка классом-контейнером import java.awt.*; import java.awt.event.*; import java.swing.*;
class MyNotebook extends JFrame implements ActionListener {
private JTextField tf; //одна строка private JTextArea ta; // текстовое поле
public MyNotebook (String title) {//конструктор super (title); Container c = getContentPane ();
tf = new JTextField (“Введите текст “, 50); c.add (tf, BorderLayout.NORTH);
ta = new JText Area (); ta.setEditable (false); c.add (ta);
JPanel p = new JPanel (); JButton b = new JButton (“Перенести”); JButton bс = new JButton (“Очистить”); p.add (b); p.add (bс);
c.add (p, Borderlayout.SOUTH);
b.add ActionListener (this); //регистрация bс.add ActionListener (this); tf.add ActionListener (this);
setSize (300, 200); setVisible (true); }
public void actionPerformed (ActionEvent al) {//обработчик событий
if(ae.getSource == bc) ta.setText(“”);
else ta.append (tf.getText() + “\n”);
//System.out.println (ae.getSource); //для отладки }
public static void main (String [] args) { JFrame f = new MyNotebook (“Обработка событий”); f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); } }
Обработка события
|