
- •Об'єктно-орієнтовані мови. Основні принципи об'єктно-орієнтованого програмування.
- •Відмінності мови Java від інших мов програмування
- •Основні типи даних мови Java.
- •Перетворення даних в програмах на Java.
- •Пакети класів, їх створення та використання.
- •Використання рядків в мові Java. Клас String.
- •Менеджери розташування. Їх призначення та використання Розкладки
- •FlowLayout (послідовне розташування)
- •GridLayout (табличне розташування)
- •BorderLayout (полярне розташування)
- •CardLayout (блокнотне розташування)
- •GridBagLayout (коміркове розташування)
- •Пакет java.Awt. Ієрархія класів в ньому. Клас Component.
- •Контейнери. Їх призначення та загальні методи контейнерів Контейнери
- •Загальні характеристика класу Component (див 13)
- •Використання контейнера Panel та основні його методи. Панель
- •Контейнер Frame, його особливості. Frame (Фрейми)
- •Графічні засоби мови Java. Клас Canvas.
- •Реалізація роботи прапорців та пермикачів. Checkbox (Прапорець та Перемикач)
- •Клас Graphics. Малювання графічних примітивів.
- •Виведення тексту. Клас Font.
- •Повідомлення та події. Поля та методи класу Event Класи подій
- •Обробка повідомлень миші. Основні методи.
- •Виведення растрових зображень. Класи Url та Image. Завантаження растрового зображення
- •Виведення зображення
- •Клас Image
- •Способи усунення мерехтіння при виведенні інформації на екран. Усунення мерехтіння
- •Потоки. Клас Thread.Створення потоків.
- •Створення потоків
- •Виняткові ситуації. Класи Throwable, Exception, Error. 29. Методи обробки виняткових ситуацій.
- •Аплети у порівнянні з додатками
- •Проблема безпеки
- •Включення аплетів в html-документ Створення аплетів
- •Введення-виведення даних. Базові класи введення-виведення
- •Дати порівняльну характеристику протоколів стеку tcp/ip та udp.
- •Створення сокетів tcp
- •4.3 Робота з потоковими сокетами
- •Клас Socket
- •Клас ServerSocket
- •Створення сокетів udp
- •Клас DatagramSocket
- •Клас DatagramPacket
- •Приклад серверного додатку, що реалізує датаграмний сокет.
- •Приклад клієнтського додатку, що реалізує датаграмний сокет.
Контейнери. Їх призначення та загальні методи контейнерів Контейнери
Будь-який з компонентів, що вимагає показу на екрані, повинний бути доданий у клас-контейнер. Контейнери служать сховищем для візуальних компонентів інтерфейсу й інших контейнерів. В awt визначено такі контейнери:
вікно (Window);
панель (Panel);
фрейм (Frame);
діалогове вікно (Dialog).
Навіть якщо в аплеті явно не створюється контейнер, він все рівно буде використовуватися, оскільки клас Applet є похідним від класу Panel.
Найпростіший приклад контейнера – клас Frame, об'єкти якого відображаються на екрані як стандартні вікна з рамкою.
Щоб показати компонент користувацького інтерфейсу у вікні, потрібно створити об'єкт-контейнер, наприклад, вікно класу Frame, створити необхідний компонент і додати його в контейнер, а вже потім відобразити його на екрані. Незважаючи на настільки довгий список дій, у вихідному тексті цей процес займає усього кілька рядків.
Таблиця 9 – Основні методи класу Container
add() |
додавання елемента інтерфейсу у вікно контейнера |
add(Component, int) |
передаються порядковий номер, куди буде вставлено елемент, і посилання на об'єкт |
add(String,Component) |
посилання на об'єкт, що вставляється. Рядків, припустимих як перший аргумент, всього п'ять: North, South, East, West і Center |
getComponent(int) |
повертає посилання на компонент (повертає тип Component) за заданим індексом |
getComponents() |
повертає масив Component[] всіх елементів даного контейнера |
countComponent() |
повертає кількість компонентів у контейнері |
remove() |
видалення конкретного елемента |
removeAll(). |
метод видалення усіх візуальних компонентів |
Загальні характеристика класу Component (див 13)
клас Component забезпечує методи для додавання та вилучення блоків прослуховування подій клавіатури та миші.
Використання контейнера Panel та основні його методи. Панель
Клас Panel (панель) - це простий контейнер, у який можуть бути додані інші контейнери чи елементи інтерфейсу. Звичайно він використовується в тих випадках, коли необхідно виконати складне розміщення елементів у вікні Java-програми й аплета. При цьому панель може бути включена в склад інших контейнерів.
Конструктор:
Panel();
Панель може містити в собі декілька інших панелей, тобто їх можна вкладати одна в одну.
Приклад.
Panel mainPanel, suPanel1, subPanel2;
sainPanel = new Panel();
subPanel1 = new Panel();
subPanel2 = new Panel();
mainPanel.add(subPanel1);
mainPanel.add(subPanel2);
add(mainPanel);
Контейнер Frame, його особливості. Frame (Фрейми)
Одним з найважливіших класів користувацького інтерфейсу можна вважати клас Frame. За його допомогою реалізуються вікна для Java-програм і аплетів. На відміну від інших класів користувацького інтерфейсу, екземпляри класу Frame створюються рідко. Їх використовують для створення окремих додатків. Звичайно від нього успадковується новий клас, а вже потім створюється екземпляр нового класу:
public class NewWindow extends Frame
{
TextArea output;
public NewWindow (String title)
{
super(title);
}
...
public static void main (String args[])
{
// Створення екземпляра нового класу
NewWindow win = new NewWindow("New Window Class");
// Показати його на екрані
win.show();
}
}
Корисні методи класу Frame наведено в таблиці 10.
Таблиця 10 – Основні методи класу Frame
pack() |
змінити розмір компонентів у вікні так, щоб їхній розмір був максимально наближений до бажаного |
getTitle() |
повернути заголовок вікна |
setTitle(String) |
встановити заголовок вікна |
getIconImage() |
повернути піктограму вікна |
setIconImage(Image) |
встановити піктограму вікна |
getMenuBar() |
повернути об'єкт меню вікна |
setMenuBar(MenuBar) |
встановити меню вікна |
remove(MenuComponent) |
забрати визначений компонент із меню вікна |
isResizable() |
повернути true, якщо розмір вікна можна змінювати, інакше – false |
setResizable(boolean) |
дозволити зміна розмірів вікна |
getCursorType() |
повернути поточний тип курсору миші для вікна |
setCursor(int) |
встановити тип курсору миші для вікна: Frame.DEFAULT_CURSOR, Frame.CROSSHAIR_CURSOR, Frame.TEXT_CURSOR, Frame.WAIT_CURSOR, Frame.HAND_CURSOR, ... |