Хотя и возможно построить фрейм-окно, просто создавая Frame-объект, но вы редко будете так поступать, потому что мало что сможете с ним сделать. Например, вы не будете способны принимать или обрабатывать события, которые происходят внутри него, или выводить в него информацию. Чаще всего вы будете создавать подкласс Frame. Это позволит переопределить методы класса Frame и обработку событий.
Создать новое фрейм-окно внутри апплета на самом деле очень просто. Сначала создайте подкласс Frame. Затем переопределите необходимые для работы с окном стандартные методы, такие как init(), start(), stop() и paint(). Наконец, реализуйте метод wmdowClosing() интерфейса WindowListener, вызывая setVisible(false), чтобы закрыть окно.
Определив подкласс Frame, нужно создать объект этого класса. Однако вновь построенное фрейм-окно первоначально не будет видимым (на экране). Чтобы сделать его видимым, нужно вызвать setVisible() с аргументом false. При создании окна задают высоту и ширину по умолчанию. Чтобы установить необходимый размер окна, требуется вызвать метод setSize().
Следующий апплет создает подклассFrame с именем SampleFrame. Оконный объект этого подкласса создается внутриметода init() класса AppletFrame.
Обратите внимание, что SampleFrame вызывает Frame-конструктор. Он создает стандартное фрейм-окно с заголовком, передаваемым конструктору в аргументе title. Методы start() и stop() окна апплета переопределяются так, чтобы они показывали и скрывали дочернее окно. Это приводит к автоматическому удалению окна при завершении апплета, закрытии окна или при переходе к другой странице браузера. При возврате браузера к данному апплету показ дочернего окна возобновляется.