Páginas

miércoles, 29 de febrero de 2012

Como llamar un JDialog desde otro jDialog JAVA

usando Netbeans para uno de mis desarrollos tropecé con el siguiente problema como llamar un jDialog previamente creado desde otro JDialog el problema esta en que Netbeans crea el código automáticamente y se debe modificar con cuidado, la solución:

Seleccionamos nuestro paquete clic derecho Nuevo -> Otro -> Swing GUI Forms -> JDialog Form o OK / Cancel Dialog Sample Form


Debemos modificar los argumentos para que reciba un JDialog

public NewOkCancelDialog(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        String cancelName = "cancel";
        InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
        inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
        ActionMap actionMap = getRootPane().getActionMap();
        actionMap.put(cancelName, new AbstractAction() {

            public void actionPerformed(ActionEvent e) {
                doClose(RET_CANCEL);
            }
        });

}


así javax.swing.JDialog


Y en:


public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                NewOkCancelDialog dialog = new NewOkCancelDialog(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }



Por javax.swing.JDialog

Y listo ya podemos llamarlo desde otro JDialog !!!

5 comentarios:

  1. Buenisimo, me ayudo mucho para solucionar mi problema, gracias!! Solo un pequeño detalle, el primer remplazo debe ser por javax.swing.JDialog parent, y no solo javax.swing.JDialog.
    Muchas Gracias

    ResponderEliminar
  2. Sos un genio! Muchisimas gracias!!

    ResponderEliminar
  3. ¡EXCELENTE!!! GRACIAS POR COMPARTIR!!!
    ¡COMO DIJO Gipriest!
    ¡ERES un GENIO!!!

    ResponderEliminar
  4. No me entero del código, yo necesito meter en un jdialog padre otros jdialog respetando layout.
    Gracias

    ResponderEliminar
  5. como ejecutas el super si paren no es un Frame???

    ResponderEliminar