import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Sequencing implements ActionListener, WindowListener, FocusListener
{
JDialog dialog;
public Sequencing()
{
dialog = new JDialog(new Frame(), "dialog");
dialog.addFocusListener(this);
dialog.addWindowListener(this);
dialog.setSize(200,100);
dialog.setLocation(425,200);
}
public void actionPerformed(ActionEvent e)
{
if(!dialog.isVisible())
{
dialog.setVisible(true);
System.out.println("dialog.setVisible");
}
else
dialog.toFront();
}
public void focusGained(FocusEvent e){ print(e, "focusGained");}
public void focusLost(FocusEvent e) { print(e, "focusLost"); }
public void windowActivated(WindowEvent e){ print(e, "windowActivated");}
public void windowDeactivated(WindowEvent e) { print(e, "windowDeactivated"); }
public void windowClosing(WindowEvent e){ print(e, "windowClosing");}
private void print(AWTEvent e, String activity)
{
String id = e.getSource().getClass().getName();
id = id.substring(id.lastIndexOf(".")+1);
System.out.println(id + " " + activity);
}
public static void main(String[] args)
{
Sequencing test = new Sequencing();
JFrame f = new JFrame();
f.addFocusListener(test);
f.addWindowListener(test);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(test.getNorth(), "North");
f.setSize(200,100);
f.setLocation(200,200);
f.setVisible(true);
}
private JPanel getNorth()
{
JButton button = new JButton("open dialog");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.add(button);
return panel;
}
public void windowClosed(WindowEvent e){ }
public void windowDeiconified(WindowEvent e) { }
public void windowIconified(WindowEvent e){ }
public void windowOpened(WindowEvent e){ }
}