Java Примеры программирования Информатика начало

Окна класса Frame

азад Вперед

Ниже мы привели краткое описание класса Frame. Так как этот класс реализует интерфейс java.awt.MenuContainer, окно класса Frame может содержать меню.

Поля

С помощью полей класса Frame вы можете задавать для своего окна различные типы курсоров:

 

 
public final static int CROSSHAIR_CURSOR; public final static int DEFAULT_CURSOR; 
public final static int E_RESIZE_CURSOR; public final static int HAND_CURSOR; 
public final static int MOVE_CURSOR; public final static int N_RESIZE_CURSOR; 
public final static int NE_RESIZE_CURSOR; public final static int NW_RESIZE_CURSOR; 
public final static int S_RESIZE_CURSOR; public final static int SE_RESIZE_CURSOR; 
public final static int SW_RESIZE_CURSOR; public final static int TEXT_CURSOR; 
public final static int W_RESIZE_CURSOR; public final static int WAIT_CURSOR;
Конструкторы

Для класса Frame определено два конструктора:

Создание окна без заголовка

public 
Frame();

Создание окна с заголовоком

public 
Frame(String title);

Методы

Вызов метода createFrame

public 
void addNotify();

dispose

Удаление окна и освобождение связанных с ним ресурсов

public void 
dispose();

getCursorType

Определение типа курсора

public int getCursorType();

Получение пиктограммы, установленной для окна

public Image getIconImage();

Получение ссылки на главное меню

public 
MenuBar getMenuBar();

Получение заголовка окна

public String getTitle();

Определение возможности изменения размеров окна пользователем

public boolean isResizable();

Получение строки параметров

protected 
String paramString();

Удаление компоненты меню

public void remove(MenuComponent 
m);

Установка типа курсора

public void setCursor(int cursorType);

Установка пиктограммы

public 
void setIconImage(Image image);

Установка главного меню

public void setMenuBar(MenuBar mb);

Включение или выключение возомжности изменения размеров окна

public void setResizable(boolean 
resizable);

Установка заголовка окна

public void setTitle(String title);
Применение класса Frame

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

class MainFrameWnd extends Frame { . . . public 
MainFrameWnd(String sTitle) { super(sTitle); . . . resize(400, 200); } . . . }

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

Обратите также внимание на вызов метода 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); }
Назад Вперед
Машиностроительное черчение, инженерная графика, начертательная геометрия. Выполнение контрольной