Skip to content

Commit 90f6204

Browse files
committed
continuing to explore the great mystery of WindowClosing event handers
1 parent 0af2de6 commit 90f6204

1 file changed

Lines changed: 27 additions & 4 deletions

File tree

src/main/java/org/teachingextensions/logo/utils/MazeUtils/CreateMazeBackgroundFile.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package org.teachingextensions.logo.utils.MazeUtils;
22

33
import java.awt.Component;
4+
import java.awt.Graphics;
45
import java.awt.event.WindowAdapter;
56
import java.awt.event.WindowEvent;
7+
import java.awt.event.WindowStateListener;
68
import java.awt.image.BufferedImage;
79
import 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

Comments
 (0)