Usando Netbeans7.0 se agregan en el nuevo proyecto dos ventanas. La ventana principal tipo jFrame con un boton dentro y la ventana secundaria de tipo jDialog.
Ventana principal (JFrame):
package dosventanas;
public class ventanaPrincipal extends javax.swing.JFrame {
public ventanaPrincipal() {
initComponents();
}
@SuppressWarnings("unchecked")
+ Generated Code //Aqui va codigo generado por Netbeans (ventana y boton).
private void BotonMostrarJDialog1ActionPerformed(java.awt.event.ActionEvent evt) {
new ventana2(this, true).setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ventanaPrincipal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton BotonMostrarJDialog1;
// End of variables declaration
}
Ventana secundaria (JDialog):
package dosventanas;
public class ventana2 extends javax.swing.JDialog {
public ventana2(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
@SuppressWarnings("unchecked")
+ Generated code //Aqui va codigo generado por Netbeans (ventana2)
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
ventana2 dialog = new ventana2(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
// End of variables declaration
}
Resultado:
Nota1: En este ejemplo la ventana principal queda inhabilitada hasta que no se cierre la ventana secundaria (jDialog). Las ventanas de tipo jDialog tienen la pecurialidad de que al abrirse bloquean el resto (por seguridad).
Nota2: En netbeans7.0 (por defecto) no aparece en la lista el paquete "jDialog Form". Para ello, clic con botón izquierdo sobre icono paquete del proyecto y en el menu que aparece seguir el siguiente camino:
- New - Other - Swing GUI FORMS - jDialog form. [Next] -
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Archivo del blog
Suscribirse a:
Enviar comentarios (Atom)
Con la tecnología de Blogger.
Buen ejemplo. Necesito algo parecido, pero abriendo por botones muchos otros dialogos por ejemplo. Saber como es para abrir y cerrar estas ventanas secundarias.
ResponderEliminarExcelente tu post, no encontre uno hasta que llegue aqui y realiza lo que necesitaba, gracias.
ResponderEliminarNecesito saber como cargar al hacer clic en un boton un jdialog dentro de jframe sin que se oculte ni quede deshabilitado el jframe, es decir cargar con un boton un jdialog en un jpanel de un jframe.
ResponderEliminargracias
Se cambia la linia:
Eliminarnew ventana2(this, true).setVisible(true);
por:
new ventana2(this, false).setVisible(true);
no sirve o,o
ResponderEliminarHola! Muy bueno el post, necesito obtener una ventana secundaria pero desde un item del menu principal.
ResponderEliminarMuchas gracias por el aporte...
ResponderEliminaruna pregunta, puede hacerse una ventana por ejemplo desde un jframe a otro jframe? Porque yo voy a crear varios botones que te lleven a otras ventadas
ResponderEliminargracias pero tengo un problema, quisiera que una vez abierto el jDialog y pasarle datos al Jframe no se borren los datos que ya haya ingreado a cualquier textbox u otro componente..Gracias..
ResponderEliminarPrueba a substituir lo siguente:
EliminarSystem.exit(0); por eso otro -> dialog.setVisible(false);
Hola, estoy trabajando en un proyecto con mvc y necesito enviar los datos del jdialog al controlador, pero no he podido me envia los campos vacios y no se por que :/
ResponderEliminarBuena forma de explicar,fue de mucha ayuda. Gracias :)
ResponderEliminar