|
4 | 4 | import java.awt.Graphics; |
5 | 5 | import java.awt.event.WindowAdapter; |
6 | 6 | import java.awt.event.WindowEvent; |
| 7 | +import java.awt.event.WindowListener; |
7 | 8 | import java.awt.event.WindowStateListener; |
8 | 9 | import java.awt.image.BufferedImage; |
9 | 10 | import java.io.File; |
|
16 | 17 | import org.teachingextensions.virtualproctor.ScreenCapture; |
17 | 18 |
|
18 | 19 | /*****in progress****/ |
19 | | -public class CreateMazeBackgroundFile extends WindowAdapter |
| 20 | +public class CreateMazeBackgroundFile extends WindowAdapter implements WindowListener, WindowStateListener |
20 | 21 | { |
21 | 22 | public static void main(String[] args) |
22 | 23 | { |
23 | 24 | CoolMaze maze1 = new CoolMaze(8); |
24 | 25 | maze1.drawWallsAndEndPoint(); |
| 26 | + StdDraw.frame.addWindowListener(adapter); |
25 | 27 | closeTheWindow(); |
26 | 28 | } |
27 | 29 | private static void closeTheWindow() |
28 | 30 | { |
29 | | - // TODO Remove this print line |
30 | | - System.out.println(StdDraw.frame.getWindowListeners().toString()); |
31 | | - System.out.println(StdDraw.frame.getWindowStateListeners().toString()); |
32 | 31 | StdDraw.frame.dispatchEvent(new WindowEvent(StdDraw.frame, WindowEvent.WINDOW_CLOSING)); |
33 | | - return; |
34 | 32 | } |
35 | | - WindowStateListener adapter = new WindowStateListener() |
| 33 | + static WindowListener adapter = new WindowListener() |
36 | 34 | { |
37 | 35 | @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) |
39 | 64 | { |
40 | | - StdDraw.frame.addWindowStateListener(adapter); |
41 | 65 | } |
42 | 66 | }; |
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 | | - } |
51 | 67 | public static BufferedImage getImageOf(Component component, int width, int height) |
52 | 68 | { |
53 | 69 | BufferedImage image = ComponentApprovalWriter.drawComponent(component); |
54 | 70 | return image; |
55 | 71 | } |
56 | | - @SuppressWarnings("null") |
57 | | - public void sendImageToDisk(BufferedImage scaledMazeBackground) |
| 72 | + public static void sendImageToDisk(BufferedImage scaledMazeBackground) |
58 | 73 | { |
59 | 74 | try |
60 | 75 | { |
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); |
62 | 79 | Graphics g = scaledMazeBackground.createGraphics(); |
63 | 80 | c.paint(g); |
64 | 81 | g.dispose(); |
|
0 commit comments