Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кпп.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
238 Кб
Скачать
☆

Библиотека awt

Обратите внимание, что большинство рабочих классов, которые непосредственно используются для построения пользовательского интерфейса наследуются от класса Component. Сам класс Component абстрактный, кроме того его конструктор защищенный (protected), поэтому напрямую создать экземпляр этого класса нельзя, можно использовать только его подклассы. Далее для построения и отрисовки главного окна программы используется класс Container. Различные элементы управления вроде кнопок, линеек прокрутки и радиопереключателей наследуются напрямую от класса Component. Следовательно, в основе любого окна программы лежит класс Container, а в нем можно размещать различные панели и дочерние окна. Элементы управления размещаются непосредственно на панелях и в силу прямого наследования от класса Component имеют только базовый функционал. Исходя из схемы, наибольшее количество встроенного функционала и всяких настроечных полей, связанных с окнами, имеют классы Japplet, FileDialog, Jdialog и Jframe, поскольку они находятся в самом низу цепочки наследования и инкапсулируют в себе все поля и методы вышележащих классов.

Графическая подсистема, всякие гриды и выпадающие меню являются самостоятельными классами, наследуемыми непосредственно от класса Object со своим собственным индивидуальным набором функционала.

Классы Component и Container не имеют визуального отображения и всегда присутствуют в приложениях неявно, следовательно, для создания простейшего приложения с графическим интерфейсом, нам достаточно создать класс окна (или любой из наследующих классов), передать ему минимальный набор параметров и вызвать встроенный метод отрисовки. Пример простейшего приложения:

 import java.awt.*;

     class MyWindow extends Frame {

           public MyWindow () {

            setSize(50, 150);

            setVisible(true);

        }

       }

 public class Gip {

        public static void main(String[] args) {

        Frame fr = new MyWindow();

           }

}

 Импортируем все файлы библиотеки, задаем начальные размеры и режим видимости, затем рисуем окно на экране. Появляется пустое стандартное окно без реакции на кнопки управления. В таком простейшем варианте приложение совершенно бесполезно и единственный способ его остановить – снять задачу, ну или перезапустить JVM, если отладка идет через визуальную среду.

 Добавим возможность закрытия окна по кнопке:

 import java.awt.*;

import java.awt.event.*;                    // добавили классы обработчиков событий

   class MyWindow extends Frame {

           public MyWindow () {

            setSize(50, 150);

            setVisible(true);

            addWindowListener(new WindowAdapter () {

                public void windowClosing(WindowEvent ev) { System.exit(0); }

                      });  // добавили функцию – обработчик нажатия на кнопку закрытия формы.

                   }

       } 

public class Gip {

        public static void main(String[] args) {

        Frame fr = new MyWindow();

           }

} 

Для этого в конструктор класса MyWindow мы добавим обработчик нажатия на кнопку закрытия формы. Теперь приложение почти полноценное, можно добавлять прочие элементы управления. Однако простое добавление элементов управления ничего не даст.

Для полноценного функционирования необходимо обеспечить реакцию приложения на различные события пользовательского интерфейса – нажатие кнопок мыши и клавиатуры, изменение фокуса элементов управления.