2011-02-02 30 views
5

Tengo una aplicación Java swing que carga una página web. A veces, la página web tarda un tiempo en cargarse dependiendo de la conexión a Internet del usuario.Java Swing: ¿Pantalla de carga modal?

Quiero bloquear este marco hasta que la página se haya cargado.

Respuesta

5

La opción más sencilla es para que aparezca un cuadro de diálogo modal:

JDialog modalDialog = new JDialog(frame, "Busy", ModalityType.DOCUMENT_MODAL); 
modalDialog.setSize(200, 150); 
modalDialog.setLocationRelativeTo(frame); 
modalDialog.setVisible(true); 

es posible que desee poner una barra de progreso en ella.

0

Es posible ... He encontrado una solución.

Tuve ese problema también.

Cuando crea su cuadro de diálogo modal, como lo propone another answer, solo el usuario puede cerrarlo.
Solo es útil si puede hacer que se deshaga cuando finaliza la carga.

[ACTUALIZACIÓN]

Aquí es mi clase de diálogo

public final class Loading extends javax.swing.JDialog { 

    /* 
    * Creates new form Loading 
    * @param parent 
    * @param modal 
    */ 
    public Loading(java.awt.Frame parent,boolean modal) { 
     super(parent, modal); 
     initComponents(); 
    } 

    private void formWindowActivated(java.awt.event.WindowEvent evt) {          
     //Code to execute while loading 
     this.dispose(); 
    }              
} 

Y aquí se llaman así.

Loading l = new Loading(this/*In case you class is a frame, null otherwise*/, true); 
l.setVisible(true); 

Y después de ejecutar el código de carga descarta y continúa el código en la clase principal.

+0

Puede proporcionar a la tarea de carga una devolución de llamada para invocar el método de eliminación en su diálogo. – Daniel