public void restoreBounds() {
		Preferences prefs = getWindowPreferences();
		prefs.resetIfVersionMisMatch(WINDOW_PREFERENCES, WINDOW_PREFERENCES_VERSION);
		pruneOldWindowPreferences(prefs);
		boolean needPack = true;
		String keyPrefix = getWindowPrefsPrefix();
		if (keyPrefix != null) {
			Point location = prefs.getPointValue(WINDOW_PREFERENCES, keyPrefix + KEY_LOCATION);
			if (location != null) {
				setLocation(location);
			}
			Dimension size = prefs.getDimensionValue(WINDOW_PREFERENCES, keyPrefix + KEY_SIZE);
			if (size != null) {
				setSize(size);
				needPack = false;
			}
		}
		if (needPack) {
			pack();
		}
		GraphicsUtilities.forceOnScreen(this);
		if (prefs.getBooleanValue(WINDOW_PREFERENCES, keyPrefix + KEY_MAXIMIZED, false)) {
			setExtendedState(MAXIMIZED_BOTH);
		}
	}