Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zbirnuk_lab_po_kursy_intTexTaSybd.doc
Скачиваний:
8
Добавлен:
08.12.2018
Размер:
754.18 Кб
Скачать

Завдання властивостей компонентів.

Оскільки всі компоненти є підкласами класу Jcomponent, то для всіх них властивості задаються однаковим чином.

Наприклад: label.setText(“Cahnged text”) – задає новий текст для компоненту label; button.setForeground(Color.white) – задає колір фону для компоненту button.

Обробка подій.

Сучасний підхід до обробки подій грунтується на моделі делегування подій. Ця концепція проста: джерело генерує подію і передає її одному або декільком блокам-слухачам (listener) подій. Отримавши подію слухач обробляє її і потім повертає управління. Перевага даного підходу в тому, що логіка обробки подій відділені від інтерфейсу користувача.

Подія – це об’єкт, котрий описує зміну стану джерела. Він може бути згенерований взаємодією користувача ПК з елементами в графічному інтерфейсі користувача.

Джерело події – об’єкт, котрий генерує подію. Генерація події відбувається тоді, коли якимсь-чином змінюється внутрішній стан об’єкта. Джерело може генерувати декілька типів подій. Для того, щоб блоки-слухачі могли приймати повідомлення, джерело повинно зареєструвати ці блоки. Кожен тип подій має власний тип реєстрації. Загальна форма таких методів: public void addMouseListener(MouseListener l).

Блоки прослуховування подій створюються шляхом реалізації одного або кількох інтерфейсів прослуховування (інтерфейс визначає метод або методи, котрі повинні бути реалізовані в класі).

Найважливіші інтерфейси та їх методи:

Інтерфейс ActionListener метод: void actionPerformed(ActionEvent ae) – метод викликається коли настає action-подія, наприклад, користувач натискає мишкою на кнопці або написі.

Інтерфейс ComponentListenet методи: void componentResized(ComponentEvent ce); void componentMoved(ComponentEvent ce); void componentShown(ComponentEvent ce); void componentHidden(ComponentEvent ce) : методи викликаються коли компонент змінюється в розмірах, переміщуються, відображається на екрані або стає невидимим.

Інтерфейс MouseListener методи: void mouseClicked()– якщо кнопка мишки натискається і відразу ж відпускається; void mouseEntered() – якщо вказівник мишки входить в межі компонента; void mouseExited()– якщо вказівник мишки виходить за межі компонента; void mousePressed() – якщо кнопка мишки натискається; void mouseReleased() – якщо кнопка мишки відпускається.

Інтерфейс MouseMotionListener

методи: void mouseDragged(MouseEvent me);

void mouseMoved(MouseEvent me) – методи викликаються багато разів, коли мишка перетягується (dragged) або коли мишка переміщується.

Приклад 2.

import javax.swing.*;

import java.awt.*;

import java.awt.event.MouseMotionListener;

import java.awt.event.MouseEvent;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class Lab3 extends JFrame

{

private JLabel label;

private JButton button;

public Lab3()

{

setTitle("Work #3");

setSize(300,300);

getContentPane().setLayout(new FlowLayout());

addMouseMotionListener(new Lab3MouseMoution());

label = new JLabel("simple label");

getContentPane().add(label);

button = new JButton("Press me");

button.addActionListener(new ButtonPressed());

getContentPane().add(button);

setVisible(true);

}

public static void main(String[] args)

{

new Lab3();

}

class Lab3MouseMoution implements MouseMotionListener

{

public void mouseDragged(MouseEvent e)

{

}

public void mouseMoved(MouseEvent e)

{

System.out.println("mouse moved, x - "+e.getX()+" , y - "+e.getY());

}

}

class ButtonPressed implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

System.out.println("button pressed");

}

}

}

Пояснення:

class Lab3MouseMoution implements MouseMotionListener – класс-слухач подій переміщення мишки;

addMouseMotionListener(new Lab3MouseMoution()) – додаємо слухач, котрий буде обробляти події типу переміщення мишки до вікна Lab3.

class ButtonPressed implements ActionListener – клас-слухач події натискання на кнопку. button.addActionListener(new ButtonPressed()) – додаємо слухач натискання на кнопку до кнопки button.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]