2011-02-02 26 views
5

Mam aplikację Java swing, która ładuje stronę internetową. Czasami ładowanie strony internetowej trwa chwilę w zależności od połączenia internetowego użytkownika.Java Swing: Ekran ładowania modalnego?

Chcę zablokować tę ramkę do momentu załadowania strony.

Odpowiedz

5

Najprostszym rozwiązaniem jest pop modalne okno dialogowe:

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

może chcesz umieścić pasek postępu w nim.

0

Jest to możliwe ... Wymyśliłem rozwiązanie.

Miałem ten problem.

Po utworzeniu modalnego okna dialogowego, zgodnie z propozycją another answer, tylko użytkownik może je zamknąć.
Jest to przydatne tylko wtedy, gdy można go wyrzucić, gdy ładowanie się zakończy.

[UPDATE]

Oto moja klasa Dialog

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(); 
    }              
} 

A tutaj to nazwać w ten sposób.

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

Po wykonaniu kodu załadunku zostaje zwolniony i kontynuuje kod w klasie nadrzędnej.

+0

Możesz dostarczyć do zadania ładowania wywołanie zwrotne, aby wywołać metodę utylizacji w oknie dialogowym. – Daniel