View Javadoc
1   package au.gov.amsa.util.swing;
2   
3   import java.awt.event.WindowAdapter;
4   import java.awt.event.WindowEvent;
5   import java.util.prefs.Preferences;
6   
7   import javax.swing.JFrame;
8   
9   public final class FramePreferences {
10  
11      public static void restoreLocationAndSize(JFrame frame, int defaultX, int defaultY,
12              int defaultWidth, int defaultHeight, Class<?> cls) {
13          Preferences prefs = Preferences.userNodeForPackage(cls);
14          int x = Integer.parseInt(prefs.get("frame.x", defaultX + ""));
15          int y = Integer.parseInt(prefs.get("frame.y", defaultY + ""));
16          int width = Integer.parseInt(prefs.get("frame.width", defaultWidth + ""));
17          int height = Integer.parseInt(prefs.get("frame.height", defaultHeight + ""));
18          frame.setLocation(x, y);
19          frame.setSize(width, height);
20          frame.addWindowListener(new WindowAdapter() {
21  
22              @Override
23              public void windowClosing(WindowEvent e) {
24                  prefs.put("frame.x", frame.getX() + "");
25                  prefs.put("frame.y", frame.getY() + "");
26                  prefs.put("frame.width", frame.getWidth() + "");
27                  prefs.put("frame.height", frame.getHeight() + "");
28              }
29  
30          });
31  
32      }
33  
34  }