Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении размеров окна, его перемещении или удалении с экрана, а также показа на экране происходит событие windowEvent.

Программа листинга 10.5 создает два окна типа Frame, в которые помещаются строки — метки Label. При закрытии основного окна щелчком по соответствующей кнопке в строке заголовка или комбинацией клавиш + выполнение программы завершается обращением к методу system.exit (0), и закрываются оба окна. При закрытии второго окна происходит обращение к методу dispose (), и закрывается только это окно.

Листинг 10.5. Создание двух окон 

import j ava.awt.* ; 

import java.awt.event.*;

class TwoFrames{

public static void main(String[] args){ 

Fr1 fl = new Frl(" Основное окно"); 

Fr2 f2 = new Fr2(" Второе окно"); 

}

class Frl extends Frame{ 

Fr1(String s){ 

super(s); 

setLayout(null);

Font f = new Font("Serif", Font.BOLD, 15); 

setFont(f);

Label 1 = new Label("Это главное окно", Labe1.CENTER); 

l.setBounds(10, 30, 180, 30); 

add(l);

setSize(200, 100); 

setvisible(true); 

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit (0); 

}

});

}

}

class Fr2 extends Frame{ Fr2(String s){

super(s);

setLayout(null) ;

Font f = new Font("Serif", Font.BOLD, 15);

setFont(f);

Label I = new Label("Это второе окно", Label.CENTER);

l.setBounds(10, 30, 180, 30);

add(l);

setBounds(50, 50, 200, 100);

setvisible(true);

addWindowListener(new WindowAdapter(){ 

public void windowClosing(WindowEvent ev) { 

dispose ();

}

}); 

}

На рис. 10.5 показан вывод этой программы. Взаимное положение окон определяется оконным менеджером операционной системы и может быть не таким, какое показано на рисунке.

Рис. 10.5. Программа  с двумя окнами