class PropertiesFrame extends JFrame {
public PropertiesFrame() {
String userDir = System.getProperty("user.home");
File propertiesDir = new File(userDir, ".coreJava");
if(!propertiesDir.exists()) {
propertiesDir.mkdir();
}
propertiesFile = new File(propertiesDir, "program.properties");
Properties defaultSetting = new Properties();
defaultSetting.put("left", "0");
defaultSetting.put("top", "0");
defaultSetting.put("width", "" + DEFAULT_WIDTH);
defaultSetting.put("height", "" + DEFAULT_HEIGHT);
defaultSetting.put("title", "");
settings = new Properties(defaultSetting);
if(propertiesFile.exists()) {
try {
FileInputStream in = new FileInputStream(propertiesFile);
settings.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
int left = Integer.parseInt(settings.getProperty("left"));
int top = Integer.parseInt(settings.getProperty("top"));
int width = Integer.parseInt(settings.getProperty("width"));
int height = Integer.parseInt(settings.getProperty("height"));
setBounds(left, top, width, height);
String title = settings.getProperty("title");
if("".equals(title)) {
title = JOptionPane.showInputDialog("Please input a frame title:");
}
if(null == title) {
title = "";
}
setTitle(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
settings.put("left", "" + getX());
settings.put("top", "" + getY());
settings.put("width", "" + getWidth());
settings.put("height", "" + getHeight());
settings.put("title", getTitle());
try {
FileOutputStream out = new FileOutputStream(propertiesFile);
settings.store(out, "program properties");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
System.exit(0);
}
});
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
private File propertiesFile;
private Properties settings;
}
public PropertiesFrame() {
String userDir = System.getProperty("user.home");
File propertiesDir = new File(userDir, ".coreJava");
if(!propertiesDir.exists()) {
propertiesDir.mkdir();
}
propertiesFile = new File(propertiesDir, "program.properties");
Properties defaultSetting = new Properties();
defaultSetting.put("left", "0");
defaultSetting.put("top", "0");
defaultSetting.put("width", "" + DEFAULT_WIDTH);
defaultSetting.put("height", "" + DEFAULT_HEIGHT);
defaultSetting.put("title", "");
settings = new Properties(defaultSetting);
if(propertiesFile.exists()) {
try {
FileInputStream in = new FileInputStream(propertiesFile);
settings.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
int left = Integer.parseInt(settings.getProperty("left"));
int top = Integer.parseInt(settings.getProperty("top"));
int width = Integer.parseInt(settings.getProperty("width"));
int height = Integer.parseInt(settings.getProperty("height"));
setBounds(left, top, width, height);
String title = settings.getProperty("title");
if("".equals(title)) {
title = JOptionPane.showInputDialog("Please input a frame title:");
}
if(null == title) {
title = "";
}
setTitle(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
settings.put("left", "" + getX());
settings.put("top", "" + getY());
settings.put("width", "" + getWidth());
settings.put("height", "" + getHeight());
settings.put("title", getTitle());
try {
FileOutputStream out = new FileOutputStream(propertiesFile);
settings.store(out, "program properties");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
System.exit(0);
}
});
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
private File propertiesFile;
private Properties settings;
}