11package org .teachingextensions .logo .utils .MazeUtils ;
22
33import java .awt .Component ;
4+ import java .awt .Graphics ;
45import java .awt .event .WindowAdapter ;
56import java .awt .event .WindowEvent ;
7+ import java .awt .event .WindowStateListener ;
68import java .awt .image .BufferedImage ;
79import java .io .File ;
810
@@ -20,28 +22,49 @@ public static void main(String[] args)
2022 {
2123 CoolMaze maze1 = new CoolMaze (8 );
2224 maze1 .drawWallsAndEndPoint ();
25+ closeTheWindow ();
26+ }
27+ private static void closeTheWindow ()
28+ {
29+ // TODO Remove this print line
30+ System .out .println (StdDraw .frame .getWindowListeners ().toString ());
31+ System .out .println (StdDraw .frame .getWindowStateListeners ().toString ());
2332 StdDraw .frame .dispatchEvent (new WindowEvent (StdDraw .frame , WindowEvent .WINDOW_CLOSING ));
33+ return ;
2434 }
35+ WindowStateListener adapter = new WindowStateListener ()
36+ {
37+ @ Override
38+ public void windowStateChanged (WindowEvent e )
39+ {
40+ StdDraw .frame .addWindowStateListener (adapter );
41+ }
42+ };
2543 @ Override
2644 // TODO Verify the event firing and image creation
2745 public void windowClosing (WindowEvent event )
2846 {
29- BufferedImage scaled = ScreenCapture .getScaledImageOf (event .getComponent (), 350 , 350 );
47+ BufferedImage scaledMazeBackground = ScreenCapture .getScaledImageOf (event .getComponent (), 350 , 350 );
3048 System .out .println ("did it?" );
31- sendImageToDisk (scaled );
49+ sendImageToDisk (scaledMazeBackground );
3250 }
3351 public static BufferedImage getImageOf (Component component , int width , int height )
3452 {
3553 BufferedImage image = ComponentApprovalWriter .drawComponent (component );
3654 return image ;
3755 }
38- public void sendImageToDisk (BufferedImage image )
56+ @ SuppressWarnings ("null" )
57+ public void sendImageToDisk (BufferedImage scaledMazeBackground )
3958 {
4059 try
4160 {
61+ Component c = null ;
62+ Graphics g = scaledMazeBackground .createGraphics ();
63+ c .paint (g );
64+ g .dispose ();
4265 //String filename = "C:\\temp\\CoolMazeBackground.png";
4366 String filename = "./CoolMazeBackground.png" ;
44- ImageIO .write (image , "png" , new File (filename ));
67+ ImageIO .write (scaledMazeBackground , "png" , new File (filename ));
4568 TestUtils .displayFile (filename );
4669 }
4770 catch (Exception e )
0 commit comments