diff options
author | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2004-11-01 23:06:19 +0000 |
---|---|---|
committer | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2004-11-01 23:06:19 +0000 |
commit | 311aeb50a8ad4c2c23b5f0ebe7871fdf10303e98 (patch) | |
tree | 39c4fef83bcc84d1172a3402d13a2b4b35e1d251 /src/PrintCanvas3D/ImageDisplayer.java | |
parent | b050676ee23e3cff594f2aff6e1ab42c9f8d8de2 (diff) |
1) Add "Free OffScreen Buffer" menu item to free the off-screen buffer (by calling setOffScreenBuffer(null)).
2) Free snapshot image resources when scrollable ImageDisplayer window is closed.
3) Free scene graph and off-screen buffer information when application exits
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(); |