Характеристика библиотеки java.awt. Обработка событий управляющими компонентами и менеджерами размещения. Основные виды компонентов. Написание программы–калькулятора, реализующую графический интерфейс. Спецификация класса Calc и иерархия классов AWT.
Аннотация к работе
Отчет должен содержать: Постановку задачи, решаемой отлаженной программой. Почему в программе необходимо записать обработчик события закрытия окна? Как закрыть окно в случае, если программа запущена без этого обработчика?Основу ее составляют готовые компоненты: Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TEXTAREA, TEXTFIELD, Menubar, Menu, POPUPMENU, Menultem, CHECKBOXMENUITEM. Если этого набора не хватает, то от класса Canvas можно породить собственные "тяжелые" компоненты, а от класса Component - "легкие" компоненты. Свои "тяжелые" контейнеры можно породить от класса Panel, а "легкие" - от класса Container.Создается объект этого класса одним из трех конструкторов: · Label () - пустой объект без текста; · Label (string text) - объект с текстом text, который прижимается клевому краю компонента; · Label (String text, int alignment) - объект с текстом text и определенным размещением в компоненте текста, задаваемого одной из трех констант: CENTER, LEFT, RIGHT. Два конструктора Button () и Button (String label) создают кнопку без надписи и с надписью label соответственно. Три конструктора Checkbox (), Checkbox (String label), Checkbox (String label, boolean state) создают компонент без надписи, с надписью label в состоянии off, и в заданном состоянии state.GRIDLAYOUT компоненты размещаются в контейнере в клетках таблицы; каждый элемент занимает одну клетку GRIDBAGLAYOUT компоненты размещаются в контейнере в клетках таблицы; каждый элемент может занимать более одной клетки; является наиболее гибким компоновщиком Установка границ каждого компонента осуществляется при помощи метода: компонент.SETSIZE(КООРДИНАТАХ, КООРДИНАТАУ, ширина, высота) Компонент добавляется в контейнер при помощи метода: контейнер.add(компонент) Метод add() в случае применения BORDERLAYOUT имеет два аргумента: ссылку на компонент comp и область region, в которую помещается компонент - одну из перечисленных выше констант: add(Component comp, String region)Классы и интерфейсы для работы с делегированными событиями расположены в пакете java.awt.event (см. рисунок 5).
План
Оглавление
Цель работы 3
Задание для домашней подготовки 3
Задания к лабораторной работе 3
Задание 1 3
Задание 2 3
Содержание отчета 3
Контрольные вопросы. 4
Литература. 5
Приложение 1. Спецификация класса Calc. 6
Приложение 2. Иерархия классов AWT. 9
Приложение 3. Основные компоненты. 10
Компонент Label 10
Компонент Button 10
Компонент Checkbox 11
Класс CHECKBOXGROUP 11
Компонент Choice 12
Компонент TEXTFIELD 13
Контейнер Frame 14
Приложение 4. Менеджеры размещения. 16
Менеджер абсолютного размещения 16
Менеджер FLOWLAYOUT 18
Менеджер BORDERLAYOUT 18
Менеджер GRIDLAYOUT 19
Менеджер CARDLAYOUT 20
Менеджер GRIDBAGLAYOUT 21
Приложение 5. Обработка событий. 25
Список литературы
Официальные источники: 1. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™.
2. Официальный сайт Java - http://java.sun.com/ (есть раздел на русском языке с учебником).
3. Java™ 2 SDK, Standard Edition Documentation - .
4. Джеймс Гослинг, Билл Джой, Гай Стил. Спецификация языка Java (The Java Language Specification - http://www.javasoft.com/docs/books/jls/). Перевод на русский язык - 5. Официальный сайт проекта Eclipse - http://www.eclipse.org/.
Другое: 1. Дмитрий Рамодин. Начинаем программировать на языке Java.
2. Николай Смирнов. Java 2: Учебное пособие.
3. Картузов А. В. Программирование на языке Java.
4. Вязовик Н.А. Программирование на Java.
5. Алексей Литвинюк. Введение в интегрированную среду разработки Eclipse - .
Приложение 1. Спецификация класса Calc. import java.awt.*; //подключение пакета с классами графических компонентов import java.awt.event.*; // подключение пакета с интерфейсами - “слушателями” class Calc extends Frame implements ACTIONLISTENER
//наследуем класс Frame (окно) и интерфейс “слушателя” события нажатия кнопки
{
TEXTFIELD t1=new TEXTFIELD(8); //размер поля - 8 символов
//… другие текстовые поля
Label l1=new Label("(double)"); //метка по умолчанию содержит текст «(double)»
//… другие метки
Button b = new Button("Получить результат"); //кнопка
Checkbox cb=new Checkbox(" 20%");//флажок с названием
Choice ch;//выпадающий список public Calc(){//конструктор класса super();
SETSIZE(400,200);//размер окна ch = new Choice();//конструктор выпадающего списка ch.ADDITEM(" ");//добавляем пункты списка
b.ADDACTIONLISTENER(this);//добавляем обработчик нажатия на кнопку show();//делает окно видимым
}//конец конструктора public void GETREZ(){//метод, вычисляющий результат double x, //значение из первого текстового поля
Rez=0; //результат
//… вторая переменная - значение второго текстового поля try{ x=new Double(t1.GETTEXT()).DOUBLEVALUE();//извлечение числа из первого текстового поля
//… switch(ch.GETSELECTEDINDEX()){//какой пункт выпадающего списка выбран? (номер) case 0: Rez = x /*вторая переменная*/; break;
case 1: //…
//… остальные операторы
};
if (cb.GETSTATE()) Rez*=1.2;//если флажок нажат, умножаем результат на 1.2
//записываем текст в поле (метку) результата с помощью метода SETTEXT(String.VALUEOF(Rez));
} //окончание блока try catch(Exception ex){
String s=new String(ex.GETMESSAGE());
//записываем текст в поле (метку) сообщения об ощибке с помощью метода SETTEXT("Ошибка " s);
}// окончание блока catch
}// окончание метода GETREZ() public void ACTIONPERFORMED(ACTIONEVENT e){GETREZ();}//реализация метода ACTIONPERFORMED
//(метод вызывается нажатием на кнопку b), см. выше public static void main(String []a){Calc clc=new Calc();} //создаем только экземпляр класса Calc и все.