|
му в качестве параметра
строку заголовка окна. Напомним, что конструктор базового класса должен
вызываться в конструкторе дочернего класса перед выполнением каких-либо других
действий.
Обратите также внимание на вызов метода resize. Этот вызов необходим для
задания размеров окна.
В конструкторе вы можете определить различные параметры создаваемого вами
окна, например, указать форму курсора, пиктограмму, представляющую окно, задать
меню, определить возможность изменения размеров окна и так далее. Мы
остановимся подробнее на процедуре добавления меню к окну класса Frame, так как
она требует пояснений. С изменением других характеристик окна вы справитесь
самостоятельно.
При создании окна классов Frame и Dialog для них устанавливается режим
размещения BorderLayout. Если вам нужен другой режим размещения, необходимо
установить его явным образом.
Кроме того, созданное окно появится на экране только после вызова для него
метода show.
Убрать окно с экрана вы можете методом hide. Этот метод прячет окно, но
оставляет в памяти все связанные с ним ресурсы, поэтому вы сможете вновь
отобразить спрятанное окно, вызвав метод show.
В отличие от метода hide, метод dispose удаляет окно и освобождает все
связанные с ним ресурсы. Этот метод применяется для окончательного удаления
окна с экрана и из памяти.
Еще одно замечание касается обработки операции уничтожения окна при помощи
двойного щелчка левой клавиши мыши по системному меню окна или при помощи
кнопки уничтожения окна, расположенной в правой части заголовка.
Когда пользователь пытается уничтожить окно класса Frame или Dialog подобным
образом, возникает событие Event.WINDOW_DESTROY. Вы должны предусмотреть
обработку этого события, выполняя действия, соответствующие логике работы
вашего окна. Обычно окно уничтожается вызовом метода dispose, как это показано
ниже:
public boolean handleEvent(Event evt)
{
if(evt.id == Event.WINDOW_DESTROY)
{
dispose();
return true;
}
else
return super.handleEvent(evt);
}
Меню в окне класса Frame
Как мы уже говорили, окно класса Frame может иметь главное меню (Menu Bar)
или, как еще говорят, строку меню. Главное меню создается на базе класса
MenuBar, краткое описание которого приведено ниже:
public class java.awt.MenuBar
extends java.awt.MenuComponent
implements java.awt.MenuContainer
{
// -----------------------------------------------------
// Конструктор
// -----------------------------------------------------
public MenuBar();
// -----------------------------------------------------
// Методы
// -----------------------------------------------------
// Добавление меню в главное меню окна
public Menu add(Menu m);
// Вызов метода createMenuBar
public void addNotify();
// Определение количества меню, добавленных
// в главное меню
public int countMenus();
// Получение ссылки на меню Help
public Menu getHelpMenu();
// Получение ссылки на меню с заданным номером
public Menu getMenu(int i);
// Удаление меню с заданным номером из главного меню
public void remove(int index);
// Удаление компоненты меню
public void remove(MenuComponent m);
// Извещение об удалении меню
public void removeNotify();
// Установка меню Help
public void setHelpMenu(Menu m);
}
Для формирования главного меню окна вы должны создать объект класса MenuBar
с помощью конструктора, а затем добавить в него отдельные меню.
Объект главного меню создается следующим образом:
MenuBar mbMainMenuBar;
mbMainMenuBar = n
|
|