1 package com.billkuker.rocketry.motorsim.visual;
\r
3 import java.awt.Rectangle;
\r
4 import java.awt.event.ComponentEvent;
\r
5 import java.awt.event.ComponentListener;
\r
6 import java.util.prefs.Preferences;
\r
8 import javax.swing.JFrame;
\r
10 public class RememberJFrame extends JFrame {
\r
11 private static final long serialVersionUID = 1L;
\r
14 public RememberJFrame(int width, int height){
\r
15 setSize(width, height);
\r
17 addComponentListener(new ComponentListener() {
\r
19 public void componentResized(ComponentEvent arg0) {
\r
23 public void componentMoved(ComponentEvent arg0) {
\r
27 public void componentHidden(ComponentEvent arg0) {}
\r
29 public void componentShown(ComponentEvent arg0) {}
\r
33 protected String getPositionKey(){
\r
34 return this.getClass().getName();
\r
37 private void positionChanged(){
\r
38 Rectangle r = getBounds();
\r
39 Preferences prefs = Preferences.userNodeForPackage(this.getClass());
\r
40 boolean max = (getExtendedState() & JFrame.MAXIMIZED_BOTH)!=0;
\r
42 prefs.putInt(getPositionKey() + ".w", r.width);
\r
43 prefs.putInt(getPositionKey() + ".h", r.height);
\r
44 prefs.putInt(getPositionKey() + ".x", r.x);
\r
45 prefs.putInt(getPositionKey() + ".y", r.y);
\r
47 prefs.putInt("m", max?1:0);
\r
50 private void restore(){
\r
51 Preferences prefs = Preferences.userNodeForPackage(this.getClass());
\r
52 Rectangle r = new Rectangle(
\r
53 prefs.getInt(getPositionKey() + ".x", 0),
\r
54 prefs.getInt(getPositionKey() + ".y", 0),
\r
55 prefs.getInt(getPositionKey() + ".w", getSize().width),
\r
56 prefs.getInt(getPositionKey() + ".h", getSize().height)
\r
58 this.setSize(r.width, r.height);
\r
59 setLocation(r.x, r.y);
\r
61 if ( prefs.getInt("m", 0) == 1 )
\r
62 setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH );
\r
66 @SuppressWarnings("deprecation")
\r
67 public static void main(String[] args){
\r
68 RememberJFrame f = new RememberJFrame(300, 300);
\r
69 f.setDefaultCloseOperation(EXIT_ON_CLOSE);
\r