Разработка оконного приложения
Автор: Рафаэль Габитов • Апрель 13, 2023 • Лабораторная работа • 1,184 Слов (5 Страниц) • 166 Просмотры
Лабораторная работа №4. Разработка оконного приложения
Цель работы: Научиться разрабатывать оконные приложения в среде разработки языка Java
Теоретический материал:
public class WindowedApp extends Frame{
public static void main (String[] args){
WindowedApp win = new WindowedApp();
}
WindowedApp(){
super("Windowed Application");
pack();
setSize(400, 400);
show();
}
public void paint(Graphics g){
g.drawString("Welcome Windowed Application!", 100, 100);
}
public boolean handleEvent(Event event){
if(event.id == Event.WINDOW_DESTROY){
System.exit(0);
return true;
}
return false;
}
}
Структура оконного приложения
Первое, что делает приложение - подключает необходимые библиотеки:
import java.awt.*; |
В данном случае подключается стандартная библиотека awt, содержащая классы, способные создавать окна.
Говоря языком строгих научных терминов, Java является не просто языком программирования, а объектно-ориентированным языком. И вот в этом простом примере уже можно видеть что это означает для нас на практике.
Объявление главного класса программы стало выглядеть вот так:
public class WindowedApp extends Frame{ |
Ключевое слово extends означает, что наша программа (точнее её класс) является наследником класса Frame, который определён где-то в стандартной библиотеке awt (вот зачем мы её подключали). Этот самый Frame уже содержит в себе всё необходимое для создания и функционирования окна программы - нам остаётся только использовать его методы в своей программе. И как раз для этого мы и объявляем класс своей программы наследником этого стандартного класса - вместе с тем наследуя и методы. Дальше Вы увидите, как мы будем использовать их - хотя нам не придётся их писать. Они уже заботливо написаны и отлажены за нас раньше создателями Java - скажем им за это спасибо и продолжим изучение программы.
Далее идёт уже знакомый нам метод main - но что же он делает? На первый взгляд почти ничего. Всего одна строка, в которой создаётся какая-то переменная... кстати, имеющая тип, имя которого совпадает с именем нашей программы?
Ведь в предыдущей строке мы не просто так писали class WindowedApp - это было объявление класса. А теперь, внутри нашего класса, мы пишем, что же и как именно он делает.
В частности, метод main этого нашего класса порождает ровно один объект - принадлежащий этому классу. В строгих научных терминах такой объект называется экземпляром класса.
А как именно создаётся этот экземпляр? Как появляется на экране окно нашей программы?
Всё это описано в конструкторе класса - и мы обязаны его написать. Вот он:
WindowedApp(){ super("Windowed Application"); pack(); setSize(400, 400); show(); } |
Конструктор обязательно имеет то же самое имя, что и его класс. И первое что он делает - это super. Не в смысле, что он хвастается, нет. Зарезервированное слово super означает вызов конструктора класса-предка. Предком у нашей программы является Frame - а его конструктор умеет создавать окно и устанавливать для этого окна заголовок (в нашем случае заголовком будет строка "Windowed Application").
...