Etiqueta: jframe

Crear diálogos modales en Java Swing

Un diálogo modal respecto al sistema es una ventana que no va ceder el foco a ninguna otra aplicación hasta que se produzca una determinada acción sobre él. Por ejemplo, podríamos utilizarlos en caso de que dispongamos de un JFrame que abre una nueva ventana y al que no podemos acceder a menos que cerremos dicha ventana.

Para ello, hay que tener en cuenta que esa nueva ventana que abrimos no puede ser un JFrame, sino un JDialog. El procedimiento es el siguiente:

  • Hemos definido un JDialog con los componentes que deseemos. Su constructor dispondrá de dos parámetros: parent y modal, que indican el padre del JDialog, y si la ventana es modal (hasta que no se cierre no podemos acceder al padre) o no modal.

public DialogSalonHabana(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}

  • La ventana principal dispone de un envento que permite abrir el nuevo JDialog, con el siguiente código:

private void mniNuevaVentanaActionPerformed(java.awt.event.ActionEvent evt) {
NuevaVentanaDialog nv = new NuevaVentanaDialog(this,true);
JDialog jd = new JDialog(nv, “Dialogo modal”, Dialog.ModalityType.DOCUMENT_MODAL);
nv.setVisible(true);
}

De este modo, cuando mediante el evento mniNuevaVentanaActionPerformed  abramos una ventana NuevaVentanaDialog, no podremos volver a la ventana principal hasta que ésta no sea cerrada.

Centrar un JFrame al ejecutar la aplicación

Centrar un JFrame en la pantalla (Tip)

Trasteando para lograr que un JFrame apareciera centrado en la pantalla al ejecutar la aplicación, Iván encontró la solución para NetBeans:

  1. Botón derecho sobre el frame que queremos centrar.
  2. Opción Properties.
  3. Pestaña Code.
  4. Marcar la casilla Generate Center.
Centrar un JFrame al ejecutar la aplicación
Centrar un JFrame al ejecutar la aplicación

Voilá! ¡Gracias, Iván! :)