Часто необходимо использовать диалоговое окно, содержащее набор связанных элементов управления. Диалоговые окна первоначально использовались для получения ввода от пользователя. Они подобны фрейм-окнам, за исключением того, что диалоговые окна — всегда дочерние окна для окна верхнего уровня. Кроме того, диалоговые окна не имеют строки меню. В других отношениях они функционируют подобно фреймовым окнам. (Можно, например, добавлять к ним элементы управления тем же способом, каким добавляются элементы управления к фреймовому окну.) Диалоговые окна могут быть модальными или немодальными. Когда модальное диалоговое окно активно, весь ввод направляется к нему, пока оно не будет закрыто. Это означает, что вы не можете обращаться к другим частям программы до тех пор, пока не закрыли диалоговое окно. Когда немодальное диалоговое окно активно, фокус ввода может быть направлен другому окну вашей программы. Таким образом, другие части вашей программы остаются активными и доступными. Диалоговые окна обслуживает класс Dialog. Обычно используются следующие конструкторы этого класса:
Dialog (Frame parentWindow, boolean mode)
Dialog (Frame parentWindow, String title, boolean mode)
Здесь parentWindow — владелец диалогового окна. Если mode имеет значение true, диалоговое окно является модальным. Иначе, оно — немодальное. Заголовок диалогового окна можно передать через параметр title. В общем случае, ваша программа будет подклассом класса Dialog, добавляющим функциональные возможности, необходимые приложению.
Далее следует модифицированная версия предшествующей меню-программы, которая отображает немодальное диалоговое окно с выбранным пунктом New. Обратите внимание, что, когда диалоговое окно закрывается, вызывается метод dispose(). Данный метод определен в классе Window и освобождает все системные ресурсы, связанные с диалоговым окном.