diff options
Diffstat (limited to 'src/PrintCanvas3D/ImageDisplayer.java')
-rw-r--r-- | src/PrintCanvas3D/ImageDisplayer.java | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/PrintCanvas3D/ImageDisplayer.java b/src/PrintCanvas3D/ImageDisplayer.java index 4666bf2..30f498e 100644 --- a/src/PrintCanvas3D/ImageDisplayer.java +++ b/src/PrintCanvas3D/ImageDisplayer.java @@ -70,6 +70,12 @@ class ImageDisplayer extends JFrame implements ActionListener { private JMenuItem printItem; private JMenuItem closeItem; + private void freeResources() { + this.removeAll(); + this.setVisible(false); + bImage = null; + } + public void actionPerformed (ActionEvent event) { Object target = event.getSource(); @@ -77,9 +83,7 @@ class ImageDisplayer extends JFrame implements ActionListener { new ImagePrinter(bImage).print(); } else if (target == closeItem) { - this.removeAll(); - this.setVisible(false); - bImage = null; + freeResources(); } } @@ -109,6 +113,13 @@ class ImageDisplayer extends JFrame implements ActionListener { JScrollPane scrollPane = new JScrollPane(imagePanel); scrollPane.getViewport().setPreferredSize(new Dimension(700, 700)); + // Handle the close event + this.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent winEvent) { + freeResources(); + } + }); + // Add scroll pane to the frame and make it visible this.getContentPane().add(scrollPane); this.pack(); |