Главная страница
Навигация по странице:

  • ActionListener

  • Listener

  • «Меню»

  • MouseListener

  • ООП. Заголовочные файлы, указатели, перегрузка операций и т д. Кроссплатформенность языка


    Скачать 60.07 Kb.
    НазваниеЗаголовочные файлы, указатели, перегрузка операций и т д. Кроссплатформенность языка
    Дата19.03.2021
    Размер60.07 Kb.
    Формат файлаdocx
    Имя файлаООП.docx
    ТипДокументы
    #186450
    страница4 из 4
    1   2   3   4
    add

    add(<новый component>)

    Класс, расширяющий класс JPanel позволяет создать панель. Панель является компонентом, на котором можно осуществлять рисование, а также она может является контейнером для других компонент.

    Для создания текстового поля используются объекты класса JTextField

    JTextField field = new JTextField();

    field. SetCollumns(15); // setCollumns – устанавливает ширину текстового поля

    String s=field.getText(); // getText()- позволяет получить содержимое текстового поля в виде строки

    field.setText(“Some string”); // setText - позволяет установить содержание текстового поля

    frame.add(field);

    Объекты класса JLabel можно использовать для создания меток на форме

    JLabel l1=new JLabel (“Метка»);

    Кнопка создается с помощью объекта класса JButton b1=new JButton (“Добавить”);

    Класс JTextArea – позволяет создавать многострочные текстовые поля. Здесь нужно устанавливать ширину и высоту текстового поля

    setCollumns(int x) // - установка ширины текстового поля

    setRows(int x)// - установка высоты или длины текстового поля

    setText – позволяет установить значение текста

    append(String s) – добавляет кусок текста к существующему тексту в TextArea

    Схема обработки событий

    При обработке событий, предусмотренных библиотекой AWT, программист полностью контролирует процесс передачи события от его источника к его обработчику. Источник события содержит методы, которые позволяют связывать его с обработчиком и оповещать всех зарегистрированных обработчиков события о наступлении данного события. Обработчиком события может быть назначен любой объект

    В Java все объекты события являются экземплярами класса EventObject или его подклассов.

    Вся информация о наступившем событии инкапсулируется в некотором объекте.

    Схему обработки событий можно представить следующими шагами:

    1. Создается класс-обработчик события, который реализует специальный интерфейс

    2. В источнике события регистрируются все возможные обработчики этого события

    3. При наступлении события источник формирует объект, описывающий это событие и рассылает этот объект всем зарегистрированным обработчикам

    4. На основании полученного объекта события обработчик принимает решение каким образом реагировать на это событие.

    Например, для обработки событий кнопки нужно реализовать класс, реализующий интерфейс ActionListener

    Для обработки событий окна нужно реализовать интерфейс WindowListener

    Для обработки взаимодействий с мышью нужно реализовать интерфес MouseListener

    Для кнопок клавиатуры – KeyListener

    Лекция 12.12.19

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

    <источник>.addСобытиеListener(<обработка>)

    Для добавления некого обработчика источнику события необходимо сначала создать класс-обработчик события, который реализует специальный интерфейс. Обычно в качестве обработчиков события используют внутренние классы, поскольку они облегчают доступ к элементам панели. В нашем примере создается панель, на которой расположены два текстовых поля, содержимое которых мы будем складывать по нажатию кнопки и результат записывать в элемент JLabel

    Создаем панель:

    Class MyPanel extends JPanel

    {

    JTextField f1,f2;

    JLabel l1;

    JButton b;

    MyPanel ()

    {

    f1=new JTextField();

    f1.setColumns(15);

    add(f1);

    f2=new JTextField();

    f2.setColumns (15);

    add(f2);

    l1=new JLabel();

    add(l1);

    b=new JButton(“Вычислить”);

    MyListener listener new MyListener ();

    b.addActionListener(listener);

    add(b);

    }

    class MyListener implements ActionListener // это обработчик

    {

    public void actionPerformed(ActionEvent e)

    {

    int p1=Integer.parseInt (f1.getText()); // делаем приведение типов для каждого из p

    int p2=Integer.parseInt (f2.getText());

    int p3=p1+p2;

    p1.setText(String.valueOf(p3));

    Кнопка может генерировать события типа ActionEvent В тот момент, когда кнопка нажимается, создается объект, который будет инкапсулировать все сведения об произошедшем событии. Далее этот объект будет отправлен всем зарегистрированным обработчикам, т.е объекту Listener,

    который выполнит некие действия, необходимые при нажатии этой кнопки. Помимо обработки нажатия на кнопку события ActionEvent могут генерироваться при нажатии на пункт «Меню», при двойном щелчке на пункте Списка, а также при нажатии Entera, когда курсор расположен в текстовом поле.

    Интерфейс MouseListener содержит заголовки методов, которые позволяют создавать классы-обработчики для события, исходящих от мыши. Мышь генерирует события типа MouseEvent, которые передаются параметром в методы интерфейса.

    public void mouseClicked (Mouse Event e) –этот метод реализует обработку щелчка мыши

    public void mousePressed (Mouse Event e) – этот метод реализует, когда кнопка мыши зажата.

    public void mouseReleased (Mouse Event e)- обработчик для событий, когда кнопка мыши отпущена

    public void mouseEntered (Mouse Event e) – когда курсор входит в какую-нибудь область

    public void mouseExited (Mouse Event e) - когда курсор вsходит из какой-нибудь области

    Для обработки событий, поступающих от мыши необходимо реализовать интерфейс MouseListenerт.е нужно создать класс, который реализует этот интерфейс, то есть реализует все эти методы, даже если они пустые.

    Для регистрации такого обработчика используется метод addMouseListener. Для обработки событий мыши минимально необходимо реализовать метод MouseClicked, а все остальные заголовки можно переписать в класс обработчика, оставив их тела пустыми.

    Для удобства программистов были созданы специальные классы-адаптеры, которые содержат пустую реализацию всех методов, соответствующего интерфейса. Тогда для создания класса-обработчика события можно создать класс, который является наследником класса адаптера и переопределить в нем только нужные методы. Для каждого интерфейса слушателя существует свой класс адаптер.

    Например, для интерфейса MouseListener существует класс MouseAdapter

    class MyListener extends MouseAdapter

    {

    public void mouseClicked(MouseEvent e )

    {

    If (f1.getText().equals(“Admin”))

    flag=true;

    else flag=false;

    }

    }

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

    <источник>.addMouseListener(new MouseAdapter()

    {
    1   2   3   4


    написать администратору сайта