МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра САПР
/
Лабораторна робота № 9
Принципи побудови графічного інтерфейса
МЕТА РОБОТИ
Ознайомитися з основними принципами побудови графічного інтерфейса.
ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Основне поняття графічного інтерфейса користувача (ГІК) — компонент (component) графічної системи. В українській мові це слово підрозуміває просто складову частину, елемент чого-небудь, але в графічному інтерфейсі це поняття більш конкретне. Воно означає окремий, повністю визначений елемент, котрий можна використовувати в графічному інтерфейсі незалежно від інших елементів. Наприклад, це поле введення, кнопка, рядок меню, смуга прокрутки, радіокнопка. Саме вікно додатку — теж є компонент. Компоненти можуть бути і невидимими, наприклад, панель, обєднуюча компоненти, також являється компонентом.
Ви не здивуєтесь, узнавши, що в AWT компонентом вважається обєкт класу Component або обєкт всякого класу, розширяючого клас Сomponent. В класі Сomponent зібрані загальні методи роботи з будь-яким компонентом графічного інтерфейса користувача. Цей клас — центр бібліотеки AWT. Ознайомтеся з цим класом. Кожний компонент перед виведенням на екран поміщаєтся в контейнер (container). Контейнер "знає", як розмістити компоненти на екрані. Розуміється, в мові Java контейнер — це обєкт класу Container або всякого його розширення. Ознайомтеся з цим класом. Прямий нащадок цього класу — клас jcomponent — вершина ієрархії багатьох класів бібліотеки Swing.
Увага! Ви постійно будете зустрічати імена компонентів двох типів, наприклад Button і jButton. Знайте, що перший компонент важкий і для його використання треба підключати бібліотеку AWT(import java.awt.*). Другий компонент легкий і для його використання треба підключати бібліотеку Swing(import java.swing.*). При створенні додатків для програміста немає значення, яку бібліотеку використовувати. А от при створенні аплетів, які запускаються браузером, використовується виключно AWT, хоча всього можна очікувати від нових версій Java.
Створивши компонент — обєкт класу Component або його розширення, належить додати його до попередньо створеного обєкту класу container або його розширення одним із методів add(). Клас Container сам являється невидимим компонентом, він розширює клас Component. Таким чином, в контейнер поряд з компонентами можна поміщати контейнери, в яких знаходяться інші компоненти, досягаючи тим самим більшої гнучкості розміщення компонентів. Основне вікно додатку, активно взаємодіюче з операційною системою, необхідно побудувати по правилаx графічної системи. Воно повинне переміщатися по екрану, змінювати розміри, реагувати на дії миші і клавіатури. У вікні повинні бути, як мінімум, наступні стандартні компоненти.
Рядок заголовку (title bar), з лівої сторони якого необхідо розмістит кнопку контекстного меню, а з правої — кнопки звертання і розвертання вікна і кнопку закриття додатку.
Необовязковий рядок меню (menu bar) з випадаючими пунктами меню.
Горизонтальна і вертикальна смуги прокрутки (scrollbars).
Вікно повинне бути обмежено рамкою (border), реагуючою на дії миші.
Код програми
import java.awt.*;
import java.awt.event.*;
class lab9 extends Frame{
lab9(String s){
super (s);
setSize(450, 250);
setVisible(true);
setBackground(new Color(200,30,30));
Button button1 = new Button("Button");
Scrollbar scrollbar=new Scrollbar();
add(scrollbar,BorderLayout.EAST);
Checkbox checkbox = new Checkbox("checkbox");
Choice choice = new Choice();
choice.add("Km");
choice.add("M");
choice.add("Sm");
Label label = new Label("Label");
MenuBar menuBar=new MenuBar();
Menu fileMenu = new Menu("File");
menuBar.add(fileMenu);
MenuItem newMenuItem =
new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
newMenuItem.setActionCommand("New");
MenuItem openMenuItem = new MenuItem("Open");
openMenuItem.setActionCommand("Open");
MenuItem saveMenuItem = new MenuItem("Save");
saveMenuItem.setActionCommand("Save");
MenuItem exitMenuItem = new MenuItem("Exit");
exitMenuItem.setActionCommand("Exit");
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
TextArea textArea = new TextArea(2, 30);
add(checkbox, BorderLayout.NORTH);
add(button1, BorderLayout.CENTER);
add(choice, BorderLayout.WEST);
add(label, BorderLayout.EAST);
add(textArea, BorderLayout.SOUTH);
setMenuBar(menuBar);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit (0);
}
});
}
public static void main(String[] args){
new lab9("Lab9");
}
} /
Висновок
Я ознайомився з основними принципами побудови графічного інтерфейса та закріпив отриманні знання під час виконання лабораторної роботи.