Skip to content

Commit a834802

Browse files
committed
fixed CoolMazeBackground
slept 11 hours, woke up and fixed the bug
1 parent 90f6204 commit a834802

2 files changed

Lines changed: 36 additions & 19 deletions

File tree

CoolMazeBackground.png

4.58 KB
Loading

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

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.awt.Graphics;
55
import java.awt.event.WindowAdapter;
66
import java.awt.event.WindowEvent;
7+
import java.awt.event.WindowListener;
78
import java.awt.event.WindowStateListener;
89
import java.awt.image.BufferedImage;
910
import java.io.File;
@@ -16,49 +17,65 @@
1617
import org.teachingextensions.virtualproctor.ScreenCapture;
1718

1819
/*****in progress****/
19-
public class CreateMazeBackgroundFile extends WindowAdapter
20+
public class CreateMazeBackgroundFile extends WindowAdapter implements WindowListener, WindowStateListener
2021
{
2122
public static void main(String[] args)
2223
{
2324
CoolMaze maze1 = new CoolMaze(8);
2425
maze1.drawWallsAndEndPoint();
26+
StdDraw.frame.addWindowListener(adapter);
2527
closeTheWindow();
2628
}
2729
private static void closeTheWindow()
2830
{
29-
// TODO Remove this print line
30-
System.out.println(StdDraw.frame.getWindowListeners().toString());
31-
System.out.println(StdDraw.frame.getWindowStateListeners().toString());
3231
StdDraw.frame.dispatchEvent(new WindowEvent(StdDraw.frame, WindowEvent.WINDOW_CLOSING));
33-
return;
3432
}
35-
WindowStateListener adapter = new WindowStateListener()
33+
static WindowListener adapter = new WindowListener()
3634
{
3735
@Override
38-
public void windowStateChanged(WindowEvent e)
36+
public void windowOpened(WindowEvent e)
37+
{
38+
}
39+
@Override
40+
public void windowClosing(WindowEvent e)
41+
{
42+
BufferedImage scaledMazeBackground = ScreenCapture.getScaledImageOf(e.getComponent(), 350, 350);
43+
System.out.println("we got the window image, now what?");
44+
sendImageToDisk(scaledMazeBackground);
45+
}
46+
@Override
47+
public void windowClosed(WindowEvent e)
48+
{
49+
}
50+
@Override
51+
public void windowIconified(WindowEvent e)
52+
{
53+
}
54+
@Override
55+
public void windowDeiconified(WindowEvent e)
56+
{
57+
}
58+
@Override
59+
public void windowActivated(WindowEvent e)
60+
{
61+
}
62+
@Override
63+
public void windowDeactivated(WindowEvent e)
3964
{
40-
StdDraw.frame.addWindowStateListener(adapter);
4165
}
4266
};
43-
@Override
44-
// TODO Verify the event firing and image creation
45-
public void windowClosing(WindowEvent event)
46-
{
47-
BufferedImage scaledMazeBackground = ScreenCapture.getScaledImageOf(event.getComponent(), 350, 350);
48-
System.out.println("did it?");
49-
sendImageToDisk(scaledMazeBackground);
50-
}
5167
public static BufferedImage getImageOf(Component component, int width, int height)
5268
{
5369
BufferedImage image = ComponentApprovalWriter.drawComponent(component);
5470
return image;
5571
}
56-
@SuppressWarnings("null")
57-
public void sendImageToDisk(BufferedImage scaledMazeBackground)
72+
public static void sendImageToDisk(BufferedImage scaledMazeBackground)
5873
{
5974
try
6075
{
61-
Component c = null;
76+
// TODO Fix null pointer here, n = 0 is a fake
77+
int n = 0;
78+
Component c = StdDraw.frame.getComponent(n);
6279
Graphics g = scaledMazeBackground.createGraphics();
6380
c.paint(g);
6481
g.dispose();

0 commit comments

Comments
 (0)