summaryrefslogtreecommitdiffstats
path: root/src/PrintCanvas3D/ImageDisplayer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/PrintCanvas3D/ImageDisplayer.java')
-rw-r--r--src/PrintCanvas3D/ImageDisplayer.java17
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();