import java.awt.Button;
import java.awt.Dialog;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test{

	public static void main(String[] args) throws Exception {
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				Frame frame = new Frame("Frame");
                frame.setBounds(0, 0, 150, 150);

                final Dialog dialog = new Dialog(frame, "Dialog");
                dialog.setBounds(200, 0, 150, 150);
                dialog.setModal(true);

                final Dialog exclDialog = new Dialog(frame, "Dialog");
                exclDialog.setBounds(200, 200, 150, 150);
                exclDialog.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);

                final Window window = new Window(exclDialog);
                window.setBounds(0, 200, 150, 150);

                Button openFrame = new Button("Open");
                openFrame.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						dialog.setVisible(true);
					}                	
                });
                frame.add(openFrame);
                Button openDialog = new Button("Open");
                openDialog.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						exclDialog.setVisible(true);
						window.setVisible(true);
					}
                });
                dialog.add(openDialog);
                frame.setVisible(true);
			}
		});
	}
}