import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Container;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class ConfirmClose extends JFrame
{
   ConfirmClose (String title)
   {
      super(title);
      Container content = getContentPane();
      content.setBackground(Color.cyan);
      setSize(35*letter, 6*line);
      setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
      addWindowListener(new CloseConfirmer());
      setVisible(true);
   }

   private static final int line = 15, letter = 5;

   public void paint (Graphics g)
   {
      super.paint(g);
      g.drawRect(2*letter, 2*line, 30*letter, 3*line);
      g.drawString("W A R N I N G", 9*letter, 4*line);
   }

   public static void main (String[] args)
   {
      JFrame f = new ConfirmClose("Confirm Close");
   }
}

class CloseConfirmer extends WindowAdapter
{
   public void windowClosing(WindowEvent e)
   {
      Window win = e.getWindow();
      int answer = JOptionPane.showConfirmDialog(win, "Really close window?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
      System.err.println(answer);
      if (answer == JOptionPane.YES_OPTION)
      {
         win.setVisible(false);
         System.exit(0);
      }
   }
}

