Приложение 2. Иерархия классов AWT



Оглавление

 

Цель работы.. 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

Контейнер Framе. 14

Приложение 4. Менеджеры размещения. 16

Менеджер абсолютного размещения. 16

Менеджер FlowLayout 18

Менеджер BorderLayout 18

Менеджер GridLayout 19

Менеджер CardLayout 20

Менеджер GridBagLayout 21

Приложение 5. Обработка событий. 25


Цель работы

 

1. Познакомиться с библиотекой java.awt.

2. Научится обрабатывать события.

3. Освоить работу с управляющими компонентами и менеджерами размещения.

4. Применить полученные знания на практике

 

Задание для домашней подготовки

 

Ознакомиться с материалом, предоставленным в приложениях к данным методическим указаниям. Ознакомиться с текстом задания к лабораторной работе и написать программу.

 

Задания к лабораторной работе

 

Задание 1

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

 

Задание 2

o Написать программу–калькулятор, реализующую графический интерфейс.

 

Содержание отчета

 

Отчет должен содержать:

1. Постановку задачи, решаемой отлаженной программой.

2. Руководство пользователя отлаженной программы, содержащее описание интерфейсов всех функций программы.

3. Листинг программы с необходимыми комментариями.

Контрольные вопросы

 

1. Почему в программе необходимо записать обработчик события закрытия окна? Как закрыть окно в случае, если программа запущена без этого обработчика?

2. Какие менеджеры размещения компонентов вы знаете? В чем особенность каждого из них?

3. Измените программу так, чтобы метод getRez() вызывался при:

a) вводе текста в одно из текстовых полей

b) изменении состояния флажка (переключателей)

c) выборе одного из пунктов выпадающего списка

4. Как изменится работа программы, если внутри блока switch(){} не записывать операторы break.

5. Назовите два способа, которыми можно задать заголовок (title) окна.

 


Литература

 

Официальные источники:

1. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™.

2. Официальный сайт Java — http://java.sun.com/ (есть раздел на русском языке с учебником).

3. Java™ 2 SDK, Standard Edition Documentation — http://java.sun.com/products/jdk/1.5/index.html.

4. Джеймс Гослинг, Билл Джой, Гай Стил. Спецификация языка Java (The Java Language Specification — http://www.javasoft.com/docs/books/jls/). Перевод на русский язык — http://www.uni-vologda.ac.ru/java/jls/index.html

5. Официальный сайт проекта Eclipse — http://www.eclipse.org/.

 

Другое:

1. Дмитрий Рамодин. Начинаем программировать на языке Java.

2. Николай Смирнов. Java 2: Учебное пособие.

3. Картузов А. В. Программирование на языке Java.

4. Вязовик Н.А. Программирование на Java.

5. Алексей Литвинюк. Введение в интегрированную среду разработки Eclipse — http://lib.juga.ru/article/articleview/174/1/69/.

 


Приложение 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("+");//добавляем пункты списка

 

//… другие пункты списка

setLayout(new FlowLayout()); //назначаем менеджер размещения компонентов (компоновщик)

 

add(l1);//выводим созданные компоненты на экран

add(t1);

add(ch);

 

//… и другие

 

addWindowListener(new WindowAdapter(){ //добавляем обработчик кнопки закрытия окна

public void windowClosing(WindowEvent e){

dispose(); System.exit(0);

}

}

);

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 и все.

} //окончание класса Calc

 


Приложение 2. Иерархия классов AWT

 

На рис. 1 показана иерархия основных классов AWT. Основу ее составляют готовые компоненты: Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Menubar, Menu, PopupMenu, Menultem, CheckboxMenuItem. Если этого набора не хватает, то от класса Canvas можно породить собственные "тяжелые" компоненты, а от класса Component — "легкие" компоненты.

Основные контейнеры — это классы Panel, ScrollPane, Window, Frame, Dialog, FileDialog. Свои "тяжелые" контейнеры можно породить от класса Panel, а "легкие" — от класса Сontainer.

На рис. 1 также показаны и начальные классы иерархии библиотеки Swing — классы JComponent, JWindow, JFrame, JDialog, JApplet.

 

Рис. 1 Иерархия основных классов AWT

 


Дата добавления: 2019-07-15; просмотров: 142; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!