- •Лабораторна робота №5 (Java. Типи даних.)
- •План роботи
- •Теоретичні відомості
- •Більш складні типи даних – масиви.
- •Оператори керування кодом програми. Оператори if, if-else.
- •Оператори switch.
- •Порядок виконання роботи
- •Інтерфейси колекцій
- •Інтерфейс Collection.
- •Інтерфейс List.
- •Інтерфейс Set.
- •Класи колекцій
- •Клас ArrayList.
- •Клас HashSet.
- •Клас TreeSet.
- •Колекції класів, визначених програмістом.
- •Порядок виконання роботи
- •Контрольні питання
- •Завдання властивостей компонентів.
- •Обробка подій.
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №8 (Пакет Swing – компонувальники (LayoutManager))
- •План роботи
- •Теоретичні відомості
- •Компоновульник FlowLayout.
- •Компонувальник BorderLayout
- •Компонувальник CardLayout.
- •Компонувальник BoxLayout.
- •Компонувальник GridLayout
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №9 (Створення простого текстового редактора.)
- •План роботи
- •Теоретичні відомості
- •Порядок виконання роботи.
- •Контрольні питання
- •Порядок виконання роботи
- •Контрольні питання
- •Лабораторна робота №11 (Основні компоненти j2me)
- •Теоретичні відомості
- •Компоненти графічного інтерфейсу користувача midp. (пакет javax.Microedition.Lcdui)
- •Програмна структура mid-лета.
- •Завдання
- •Контрольні питання
- •Список рекомендованої літератури
- •Ресурси
Завдання властивостей компонентів.
Оскільки всі компоненти є підкласами класу 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.
