SI se desea que cada vez que se abra la aplicación se mantenga la última posición y tamaño de la ventana se puede emplear este par de métodos que hacen uso de la clase Properties, guardando en un archivo llamado "Propiedades.ini" la posición de la ventana y su tamaño. Estos métodos deben formar parte de la clase JFrame que sea la ventana principal de la aplicación.

{code}
private void leerPropiedades() {
try {
Properties properties = new Properties();
FileInputStream in = new FileInputStream("Propiedades.ini");
properties.load(in);
setSize(Integer.valueOf(properties.getProperty("VentanaAncho")),
Integer.valueOf(properties.getProperty("VentanaAlto")));
setLocation(Integer.valueOf(properties.getProperty("VentanaPosX")),
Integer.valueOf(properties.getProperty("VentanaPosY")));
in.close();
} catch(Exception e) {
}
}

private void guardarPropiedades() {
try {
Properties properties = new Properties();
FileOutputStream out = new FileOutputStream("Propiedades.ini");
properties.setProperty("VentanaAncho", String.valueOf(getWidth()));
properties.setProperty("VentanaAlto", String.valueOf(getHeight()));
properties.setProperty("VentanaPosX", String.valueOf(getX()));
properties.setProperty("VentanaPosY", String.valueOf(getY()));
properties.store(out, "---Propiedades de la aplicación---");
out.close();
} catch(Exception e) {
}
}
{/code}

El método leerPropiedades() debe ser llamado, por ejemplo, desde el evento WindowOpened o tras la llamada al método initComponents() que crea automáticamente NetBeans. El otro método, guardarPropiedades(), debe ser invocado al cerrar la ventana, es decir, en el método WindowClosing.

El archivo que guarda las propiedades será un archivo de texto que se crea automáticamente si no existe y tendrá un aspecto similar al siguiente:

{code class="brush:plain"}
#---Propiedades de la aplicación---
#Sat Jan 15 20:20:32 CET 2011
VentanaPosY=101
VentanaAncho=488
VentanaPosX=257
VentanaAlto=229
{/code}

Más información sobre la clase Properties en el tutorial de Java (inglés).