Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Диалоговые окна (класс Dialog) используются в основном для одноразового запроса информации у пользователя или для вывода небольших порций информации на экран. Диалоговые окна во всем подобны фреймам, но имеют два важных отличия: во-первых, они не являются реализацией интерфейса MenuContainer (а следовательно не реализуют панель меню автоматически); во-вторых, они могут иметь модальность - это значит, что можно сконструировать диалоговое окно, которое запретит пользователю обращаться к другим окнам (включая и окно WWW-навигатора) до тех пор, пока пользователь не произведет требуемого действия в этом диалоговом окне.

Некоторые методы класса Dialog:

· getTitle - Возвращает заголовок

· setTitle - Устанавливает заголовок

· isResizable - Проверяет, может ли пользователь изменять размер фрейма

· setResizable - Устанавливает флаг разрешения изменения фрейма

· isModal - Определяет, является ли диалоговая панель модальной

При создании диалогового окна его модальность задается указанием особого параметра вызова конструктора. Таким образом, диалоговое окно дает выбор: позволить ли пользователю продолжить работу, не обращая внимания га диалоговое окно, или же потребовать от него особой реакции на сообщение в этом окне.

Для окон класса Dialog устанавливается режим размещения BorderLayout. Если нужен другой режим размещения, то необходимо установить его явным образом методом setLayout().

Для отображения окна диалоговой панели необходимо вызвать метод show(). Чтобы спрятать окно, необходимо использовать метод hide(). Метод dispose удаляет окно диалоговой панели окончательно и освобождает все связанные с ним ресурсы.

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

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

При работе с диалоговыми окнами важно помнить одно правило: каждое диалоговое окно обязательно должно иметь фрейм в качестве родителя. Это значит, что диалоговое окно нельзя открыть непосредственно из апплета. Чтобы создать диалоговое окно, необходимо сначала завести фрейм, даже если его единственным значением будет служить родителем для диалогового окна. Только если апплет уже использует фреймы, можно обойтись без этой подготовительной стадии.

Создание подкласса Dialog.

Для того, чтобы создать свою диалоговую панель, необходимо определить новый класс, унаследовав его от класса Dialog. Например, создадим класс окон сообщений:

class MessageBox extends Dialog // объявление нового класса диалога

{

// конструктор для создания диалогового окна для вывода

// сообщения sMsg, заголовок окна передается через sTitle.

// родительский фрейм - через parent, модальность - через modal

public MessageBox(String sMsg,Frame parent,String sTitle,boolean modal)

{

// обязательный вызов конструктора суперкласса для

// правильного создания окна диалога

// этот вызов должен быть самым первым оператором

super(parent,sTitle,modal);

// задание необходимых размеров окна диалога

resize(400,200);

// здесь можно создать все необходимые компоненты для

// размещения внутри диалоговой панели, а также установить

// нужный режим размещения этих компонент

.................. }

// обработка событий диалогом, например закрытие окна

public boolean handleEvent(Event evt)

{ switch (evt.id)

{ case Event.WINDOW_DESTROY:

// --------------------

// различные завершающие действия

...........................

// удаление окна

dispose();

return true;

default:

// -------------------------------

// передача необработанных действий

return super.handleEvent(evt);

}

return true; } }

Теперь можно создавать диалоги этого класса следующим оператором:

MessageBox msgBox=new MessageBox("String of message",

new Frame(),"Message box",true)




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


Дата добавления: 2014-11-20; Просмотров: 517; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.