Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум_ОООП_для ДО (1).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
755 Кб
Скачать
☆

Диалоговые окна

Диалоговые окна подобны фрейм-окнам за исключением того, что они – всегда дочерние окна для окна верхнего уровня. Кроме того, диалоговые окна не имеют строки меню. В других отношениях они функционируют подобно фреймовым окнам. Можно, например, добавить к ним элементы управления тем же способом, каким добавляются элементы управления к фреймовому окну. Диалоговые окна могут быть модальными или немодальными. Когда модальное диалоговое окно активно, весь ввод направляется к нему, пока оно не будет закрыто. Это означает, что невозможно обратиться к другим частям программы до тех пор, пока не закрыто диалоговое окно. Когда немодальное диалоговое окно активно, фокус ввода может быть направлен другому окну программы. Таким образом, другие части программы остаются активными и доступными. Диалоговые окна обслуживает класс Dialog. Обычно используются следующие конструкторы класса:

Dialog(Frame parentWindow, boolean mode);

Dialog(Frame parentWindow, String title, boolean mode);

parentWindow – владелец диалогового окна. Если mode имеет значение true, диалоговое окно является модальным. Иначе оно немодальное. Заголовок диалогового окна можно передать через параметр title.

Следующий пример демонстрирует фреймовое окно с меню, из которого (выбором пунтов меню File→DemoDialog) вызывается модальное диалоговое окно.

Пример 3.8

Листинг Frame1.java

import java.awt.*;

import java.awt.event.*;

public class Frame1 extends Frame

implements ActionListener,WindowListener{

Menu file;MenuItem item1;

public Frame1(){

super("Фреймовое окно с меню");

setSize(500,300);

//создать строку главного меню и добавить его во фрейм

MenuBar mbar=new MenuBar();

setMenuBar(mbar);

//создать элемент меню

file=new Menu("File");

mbar.add(file);

file.add(item1=new MenuItem("DemoDialog"));

item1.addActionListener(this);

setVisible(true);

addWindowListener(this);

}

public void actionPerformed(ActionEvent ae) {

DemoDialog d=new DemoDialog(this,"Диалоговое окно",true);

}

public void windowClosing(WindowEvent we){

this.dispose();

}

public void windowActivated(WindowEvent we){};

public void windowClosed(WindowEvent we){};

public void windowDeactivated(WindowEvent we){};

public void windowDeiconified(WindowEvent we){};

public void windowIconified(WindowEvent we){};

public void windowOpened(WindowEvent we){};

public static void main(String args[])

{Frame1 f=new Frame1();

}

class DemoDialog extends Dialog implements ActionListener{

Button btn;

public DemoDialog(Frame1 ff, String title,boolean b){

super(ff,title,b);

setLayout(new FlowLayout(FlowLayout.LEFT));

btn=new Button("Закрыть");

setSize(300,200);

add(btn);

btn.addActionListener(this);

setVisible(true);

}

public void actionPerformed(ActionEvent ae){

this.dispose();

}

}

}

На рисунке 3.2 показан результат работы программы:

Рис. 3.2. Результат работы программы, приведенной в листинге Frame1.java

Контроль знаний Индивидуальная практическая работа № 1. «Объекты и классы»

Цель: Изучить особенности создания классов и их объектов в Java.

Индивидуальные задания (вариант индивидуального задания выбирать следующим образом. Если две последние цифры зачетки больше 17, то его нужно разделить на 17, полученный остаток от деления это и есть ваш вариант)

А) Создать объект класса согласно заданию. Инициализацию значений полей осуществить с помощью конструктора. В классе предусмотреть 2-3 метода, осуществляющие вывод на экран монитора соответствующую информацию о классе.

Б) Задание А модифицировать: предусмотреть перегруженные конструкторы. Создать второй класс WriterInfo, выводящий на экран монитора соответствующую информацию о классе (используя уже созданные методы класса).

1. Состав класса Stock (склад): наименование товара, его стоимость, наличие товара на складе.

2. Состав класса Student (студент): фамилия, возраст, наличие задолженностей.

3. Состав класса Music (музыкальное произведение): название произведения, количество проданных копий, возможность скачать mp3 в интернете.

4. Состав класса Product (продукт): название продукта, наличие в магазине, цена.

5. Состав класса Drugstore (аптека): фамилия владельца, наличие лицензии, месячная прибыль.

6. Состав класса Book (книга): название, цена, наличие иллюстраций.

7. Состав класса Race (гонки): дата соревнования в виде символьной строки (год, месяц и день), количество участни­ков, наличие приза.

8. Состав класса Ward (больничная палата): количество мест, фамилия врача, наличие свободных коек.

9. Состав класса Tribe (племя): название, численность. знакомство с огнем.

10. Состав класса Patient (пациент): фамилия, пол, возраст.

11. Состав класса Employee (служащий): фамилия, зарплата, наличие детей.

12. Состав класса Manager (управляющий): фамилия, возраст, справляется ли с обязанностями.

13. Состав класса Icecream (мороженое): название, наличие шоколада, процент жирности.

14. Состав класса Person (индивидуум): фамилия, возраст, пол. Подсчитать средний воз­раст и количество мужчин.

15. Состав класса Butter (масло): название, наличие растительных добавок, цена.

16. Состав класса City (город): название, население, площадь.

17. Состав класса Milk (молоко): название, жирность в процентах, наличие на складе.