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

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

Листинг 10.6. Модальное окно доступа

import j ava.awt.*; 

import Java.awt.event.*;

class LoginWin extends Dialog{ 

LoginWin(Frame f, String s){ 

super(f, s, true); 

setLayout(null); 

setFont(new Font("Serif", Font.PLAIN, 14));

Label 11 = new Label("Ваше имя:", Label.RIGHT);

11.setBounds(20, 30, 70, 25); add(ll);

Label 12 = new Label("Пароль:", Label.RIGHT);

12.setBounds(20, 60, 70, 25); add(12);

TextField tfl = new TextField(30); 

tfl.setBounds(100, 30, 160, 25); add(tfl);

TextField tf2 = new TextField(30); 

tf2.setBounds(100, 60, 160, 25); add(tf2); 

tf2.setEchoChar('*');

Button bl = new Button("Применить"); 

bl.setBounds(50, 100, 100, 30); add(bl);

Button b2 = new Button("Отменить"); 

b2.setBounds(160, 100, 100, 30); add(b2);

setBounds(50, 50, 300, 150); } }

class DialogTest extends Frame{ DialogTest(String s){ super(s); 

setLayout(null); setSize(200, 100);

setvisible(true);

Dialog d = new LoginWin(this, " Окно входа"); d.setvisible(true);

}

public static void main(String[] args){

Frame f = new DialogTest(" Окно-владелец"); 

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0); 

}

}); 

}

Рис. 10.6. Модальное  окно доступа