
Hacerlo es bastante fácil, se deben crear dos ventanas, la principal frmMain y la secundaria frmOther, ambas del tipo JFrame:
En la ventana principal se declara a nivel de clase:
frmOther formOther;
Y en el listener del botón que abre la ventana secundaria se ingresa el siguiente código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
if (formOther == null || !formOther.isVisible())
{
formOther = new frmOther("Nuevo ", "Título");
formOther.setVisible(true);
}
else
formOther.setExtendedState(JFrame.NORMAL);
}
En este caso la ventana secundaria recibe dos parámetros tipo String, pero se puede hacer que reciba cualquier cantidad y tipo de parámetros, para esto basta sobrecargar el constructor en la clase de la ventana secundaria (en este caso sólo voy a cambiar el título):
public frmOther(String param1, String param2)
{
initComponents();
this.setTitle(param1 + param2);
}
Por último, en la propiedad DefaultCloseOperation de la ventana secundaria se escoge DISPOSE.
Y eso es todo!
El proyecto en Netbeans 8.0.2 se puede descargar de aquí.